Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: run goose in a docker-style sandbox #44

Merged
merged 3 commits into from
Sep 15, 2024
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Use an official Python runtime as a parent image
FROM python:3.10-slim

# Set the working directory in the container
WORKDIR /app

# Install SSL certificates, update certifi, install pipx and move to path
RUN apt-get update && apt-get install -y ca-certificates git curl make \
&& pip install --upgrade certifi \
&& pip install pipx \
&& pipx ensurepath

# Install goose-ai CLI using pipx
RUN pipx install goose-ai
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the image was built before and this layer is cached, the user won't have the latest goose-ai if there is a new release.

We could either to disable the cache of this layer or the user can install the latest in the docker container

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lifeizhou-ap what about if this instead was built as part of the py release workflow - and pushed as a versioned image to the GH docker registry - would that be suitable?


# Make sure the PATH is updated
ENV PATH="/root/.local/bin:${PATH}"

# Run an infinite loop to keep the container running for testing
ENTRYPOINT ["goose", "session", "start"]

# once built, you can run this with something like:
# docker run -it --env OPENAI_API_KEY goose-ai
michaelneale marked this conversation as resolved.
Show resolved Hide resolved
#
# To use goose in a docker style sandbox for experimenting.