diff options
| author | MohamedBassem <me@mbassem.com> | 2024-02-20 21:23:28 +0000 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-02-20 21:38:14 +0000 |
| commit | 8711bca9db49546d265fc119b5dcf3eb2db22095 (patch) | |
| tree | 16bf6fd86da06a80014dfb5738e43a63af038793 /docker | |
| parent | dbdde49c1e4870f402dc8901e0bf78abb790caf9 (diff) | |
| download | karakeep-8711bca9db49546d265fc119b5dcf3eb2db22095.tar.zst | |
docker: Add a docker-based dev environment
Diffstat (limited to '')
| -rw-r--r-- | docker/Dockerfile (renamed from Dockerfile) | 8 | ||||
| -rw-r--r-- | docker/Dockerfile.dev | 11 | ||||
| -rw-r--r-- | docker/docker-compose.dev.yml | 58 | ||||
| -rw-r--r-- | docker/docker-compose.yml (renamed from docker-compose.yml) | 1 | ||||
| -rw-r--r-- | docker/start-chrome.sh | 7 | ||||
| -rw-r--r-- | docker/yarn.lock | 4 |
6 files changed, 83 insertions, 6 deletions
diff --git a/Dockerfile b/docker/Dockerfile index fc1950b4..0e587790 100644 --- a/Dockerfile +++ b/docker/Dockerfile @@ -82,12 +82,8 @@ ENV CHROME_PATH "/usr/bin/chromium-browser" ENV BROWSER_EXECUTABLE_PATH "/app/start-chrome.sh" ENV BROWSER_USER_DATA_DIR="/tmp/chrome" -RUN echo '#!/bin/sh' >> /app/start-chrome.sh && \ - echo 'set -x;' >> /app/start-chrome.sh && \ - echo 'id -u chrome &>/dev/null || adduser -S chrome' >> /app/start-chrome.sh && \ - echo 'mkdir -p /tmp/chrome && chown chrome /tmp/chrome' >> /app/start-chrome.sh && \ - echo 'runuser -u chrome -- $CHROME_PATH $@' >> /app/start-chrome.sh && \ - chmod +x /app/start-chrome.sh +ADD docker/start-chrome.sh . +RUN chmod +x /app/start-chrome.sh COPY packages/db packages/db COPY packages/shared packages/shared diff --git a/docker/Dockerfile.dev b/docker/Dockerfile.dev new file mode 100644 index 00000000..9a8de32b --- /dev/null +++ b/docker/Dockerfile.dev @@ -0,0 +1,11 @@ +FROM node:21-alpine + +RUN apk add --no-cache libc6-compat chromium runuser make g++ py3-pip linux-headers +ENV PUPPETEER_SKIP_DOWNLOAD true +ENV CHROME_PATH "/usr/bin/chromium-browser" +ENV BROWSER_EXECUTABLE_PATH "/bin/start-chrome.sh" +ENV BROWSER_USER_DATA_DIR="/tmp/chrome" + +WORKDIR /app +ADD start-chrome.sh /bin +RUN chmod +x /bin/start-chrome.sh diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml new file mode 100644 index 00000000..a6510939 --- /dev/null +++ b/docker/docker-compose.dev.yml @@ -0,0 +1,58 @@ +version: "3.8" +services: + web: + build: + dockerfile: Dockerfile.dev + volumes: + - data:/data + - ..:/app + ports: + - 3000:3000 + environment: + REDIS_HOST: redis + DATABASE_URL: "file:/data/db.db" + command: + - yarn + - web + working_dir: /app + depends_on: + prep: + condition: service_completed_successfully + redis: + image: redis:7.2-alpine + volumes: + - redis:/data + workers: + build: + dockerfile: Dockerfile.dev + volumes: + - data:/data + - ..:/app + working_dir: /app + environment: + REDIS_HOST: redis + DATABASE_URL: "file:/data/db.db" + # OPENAI_API_KEY: ... + command: + - yarn + - workers + depends_on: + prep: + condition: service_completed_successfully + prep: + build: + dockerfile: Dockerfile.dev + working_dir: /app + environment: + DATABASE_URL: "file:/data/db.db" + volumes: + - data:/data + - ..:/app + command: + - /bin/sh + - -c + - "corepack enable && yarn install --immutable && yarn prisma:generate && yarn prisma:migrate:dev" + +volumes: + redis: + data: diff --git a/docker-compose.yml b/docker/docker-compose.yml index 69c5fead..a0cc7366 100644 --- a/docker-compose.yml +++ b/docker/docker-compose.yml @@ -23,6 +23,7 @@ services: environment: REDIS_HOST: redis DATABASE_URL: "file:/data/db.db" + # OPENAI_API_KEY: ... depends_on: migration: condition: service_completed_successfully diff --git a/docker/start-chrome.sh b/docker/start-chrome.sh new file mode 100644 index 00000000..9f715906 --- /dev/null +++ b/docker/start-chrome.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +set -x; +id -u chrome &>/dev/null || adduser -S chrome; +mkdir -p $BROWSER_USER_DATA_DIR; +chown chrome $BROWSER_USER_DATA_DIR; +runuser -u chrome -- $CHROME_PATH --no-sandbox $@; diff --git a/docker/yarn.lock b/docker/yarn.lock new file mode 100644 index 00000000..fb57ccd1 --- /dev/null +++ b/docker/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + |
