diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 87ca39d2..f31cdeba 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,26 +1,13 @@ -# [Choice] Python version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.10, 3-bullseye, 3.10-bullseye, 3-buster, 3.10-buster -ARG VARIANT=3-bullseye +# Use an official Python base image from the Docker Hub FROM python:3.10 -RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ - # Remove imagemagick due to https://security-tracker.debian.org/tracker/CVE-2019-10131 - && apt-get purge -y imagemagick imagemagick-6-common +# Install browsers +RUN apt-get update && apt-get install -y \ + chromium-driver firefox-esr \ + ca-certificates -# Temporary: Upgrade python packages due to https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-40897 -# They are installed by the base image (python) which does not have the patch. -RUN python3 -m pip install --upgrade setuptools +# Install utilities +RUN apt-get install -y curl jq wget git -# Install Chromium for web browsing -RUN apt-get install -y chromium-driver - -# [Optional] If your pip requirements rarely change, uncomment this section to add them to the image. -# COPY requirements.txt /tmp/pip-tmp/ -# RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \ -# && rm -rf /tmp/pip-tmp - -# [Optional] Uncomment this section to install additional OS packages. -# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ -# && apt-get -y install --no-install-recommends - -# [Optional] Uncomment this line to install global node packages. -# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g " 2>&1 +# Declare working directory +WORKDIR /workspace/Auto-GPT diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index f26810fb..5d50e280 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,14 +1,14 @@ { - "build": { - "dockerfile": "./Dockerfile", - "context": "." - }, + "dockerComposeFile": "./docker-compose.yml", + "service": "auto-gpt", + "workspaceFolder": "/workspace/Auto-GPT", + "shutdownAction": "stopCompose", "features": { "ghcr.io/devcontainers/features/common-utils:2": { "installZsh": "true", "username": "vscode", - "userUid": "1000", - "userGid": "1000", + "userUid": "6942", + "userGid": "6942", "upgradePackages": "true" }, "ghcr.io/devcontainers/features/desktop-lite:1": {}, diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 00000000..90d8c116 --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,19 @@ +# To boot the app run the following: +# docker-compose run auto-gpt +version: '3.9' + +services: + auto-gpt: + depends_on: + - redis + build: + dockerfile: .devcontainer/Dockerfile + context: ../ + tty: true + environment: + MEMORY_BACKEND: ${MEMORY_BACKEND:-redis} + REDIS_HOST: ${REDIS_HOST:-redis} + volumes: + - ../:/workspace/Auto-GPT + redis: + image: 'redis/redis-stack-server:latest'