Skip to content
Merged
Changes from all 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
27 changes: 27 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# 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
# or to run against ollama running on the same host
# docker run -it --env OPENAI_HOST=http://host.docker.internal:11434/ --env OPENAI_API_KEY=unused goose-ai
#
# To use goose in a docker style sandbox for experimenting.