From ff01af2450bada20fdb02e5310737d139a13041e Mon Sep 17 00:00:00 2001 From: Min Idzelis Date: Tue, 7 Oct 2025 09:28:47 -0400 Subject: [PATCH] chore: update devcontainers for trixie, devenv changes (#22194) --- .../mobile/container-compose-overrides.yml | 49 +++++++++++-------- .devcontainer/mobile/devcontainer.json | 2 +- server/Dockerfile.dev | 29 ++++++----- 3 files changed, 46 insertions(+), 34 deletions(-) diff --git a/.devcontainer/mobile/container-compose-overrides.yml b/.devcontainer/mobile/container-compose-overrides.yml index d6cd95018f..99e41cbece 100644 --- a/.devcontainer/mobile/container-compose-overrides.yml +++ b/.devcontainer/mobile/container-compose-overrides.yml @@ -6,28 +6,35 @@ services: - IMMICH_SERVER_URL=http://127.0.0.1:2283/ volumes: !override # bind mount host to /workspaces/immich - ..:/workspaces/immich - - cli_node_modules:/workspaces/immich/cli/node_modules - - e2e_node_modules:/workspaces/immich/e2e/node_modules - - open_api_node_modules:/workspaces/immich/open-api/typescript-sdk/node_modules - - server_node_modules:/workspaces/immich/server/node_modules - - web_node_modules:/workspaces/immich/web/node_modules - - ${UPLOAD_LOCATION}/photos:/data + - ${UPLOAD_LOCATION:-upload-devcontainer-volume}${UPLOAD_LOCATION:+/photos}:/data + - pnpm-store:/usr/src/app/.pnpm-store + - server-node_modules:/usr/src/app/server/node_modules + - web-node_modules:/usr/src/app/web/node_modules + - github-node_modules:/usr/src/app/.github/node_modules + - cli-node_modules:/usr/src/app/cli/node_modules + - docs-node_modules:/usr/src/app/docs/node_modules + - e2e-node_modules:/usr/src/app/e2e/node_modules + - sdk-node_modules:/usr/src/app/open-api/typescript-sdk/node_modules + - app-node_modules:/usr/src/app/node_modules + - sveltekit:/usr/src/app/web/.svelte-kit + - coverage:/usr/src/app/web/coverage - /etc/localtime:/etc/localtime:ro - + immich-web: + env_file: !reset [] + immich-machine-learning: + env_file: !reset [] database: + env_file: !reset [] + environment: !override + POSTGRES_PASSWORD: ${DB_PASSWORD-postgres} + POSTGRES_USER: ${DB_USERNAME-postgres} + POSTGRES_DB: ${DB_DATABASE_NAME-immich} + POSTGRES_INITDB_ARGS: '--data-checksums' + POSTGRES_HOST_AUTH_METHOD: md5 volumes: - - ${UPLOAD_LOCATION}/postgres:/var/lib/postgresql/data - + - ${UPLOAD_LOCATION:-postgres-devcontainer-volume}${UPLOAD_LOCATION:+/postgres}:/var/lib/postgresql/data + redis: + env_file: !reset [] volumes: - # Node modules for each service to avoid conflicts and ensure consistent dependencies - cli_node_modules: - e2e_node_modules: - open_api_node_modules: - server_node_modules: - web_node_modules: - - # UPLOAD_LOCATION must be set to a absolute path or vol-upload - vol-upload: - - # DB_DATA_LOCATION must be set to a absolute path or vol-database - vol-database: + upload-devcontainer-volume: + postgres-devcontainer-volume: diff --git a/.devcontainer/mobile/devcontainer.json b/.devcontainer/mobile/devcontainer.json index 0dbcc8e9c8..140a2ecac3 100644 --- a/.devcontainer/mobile/devcontainer.json +++ b/.devcontainer/mobile/devcontainer.json @@ -40,7 +40,7 @@ "userEnvProbe": "loginInteractiveShell", "remoteEnv": { // The location where your uploaded files are stored - "UPLOAD_LOCATION": "${localEnv:UPLOAD_LOCATION:./Library}", + "UPLOAD_LOCATION": "${localEnv:UPLOAD_LOCATION:./library}", // Connection secret for postgres. You should change it to a random password // Please use only the characters `A-Za-z0-9`, without special characters or spaces "DB_PASSWORD": "${localEnv:DB_PASSWORD:postgres}", diff --git a/server/Dockerfile.dev b/server/Dockerfile.dev index dd2e931745..717094cb6b 100644 --- a/server/Dockerfile.dev +++ b/server/Dockerfile.dev @@ -27,8 +27,8 @@ ENTRYPOINT ["tini", "--", "/bin/bash", "-c"] FROM dev AS dev-container-server RUN apt-get update --allow-releaseinfo-change && \ - apt-get install sudo inetutils-ping openjdk-11-jre-headless \ - vim nano \ + apt-get install sudo inetutils-ping openjdk-21-jre-headless \ + vim nano curl \ -y --no-install-recommends --fix-missing RUN usermod -aG sudo node && \ @@ -44,13 +44,18 @@ FROM dev-container-server AS dev-container-mobile USER root # Enable multiarch for arm64 if necessary RUN if [ "$(dpkg --print-architecture)" = "arm64" ]; then \ - dpkg --add-architecture amd64 && \ - apt-get update && \ - apt-get install -y --no-install-recommends \ - qemu-user-static \ - libc6:amd64 \ - libstdc++6:amd64 \ - libgcc1:amd64; \ + dpkg --add-architecture amd64 && \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + gnupg \ + qemu-user-static \ + libc6:amd64 \ + libstdc++6:amd64 \ + libgcc1:amd64; \ + else \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + gnupg; \ fi # Flutter SDK @@ -65,11 +70,11 @@ RUN mkdir -p ${FLUTTER_HOME} \ && curl -C - --output flutter.tar.xz https://storage.googleapis.com/flutter_infra_release/releases/${FLUTTER_CHANNEL}/linux/flutter_linux_${FLUTTER_VERSION}-${FLUTTER_CHANNEL}.tar.xz \ && tar -xf flutter.tar.xz --strip-components=1 -C ${FLUTTER_HOME} \ && rm flutter.tar.xz \ - && chown -R node ${FLUTTER_HOME} + && chown -R node ${FLUTTER_HOME} \ + && git config --global --add safe.directory ${FLUTTER_HOME} -RUN apt-get update \ - && wget -qO- https://dcm.dev/pgp-key.public | gpg --dearmor -o /usr/share/keyrings/dcm.gpg \ +RUN wget -qO- https://dcm.dev/pgp-key.public | gpg --dearmor -o /usr/share/keyrings/dcm.gpg \ && echo 'deb [signed-by=/usr/share/keyrings/dcm.gpg arch=amd64] https://dcm.dev/debian stable main' | tee /etc/apt/sources.list.d/dart_stable.list \ && apt-get update \ && apt-get install dcm -y