immich/.devcontainer/server/docker-compose.yml
2025-05-01 14:17:42 +00:00

73 lines
2.6 KiB
YAML

services:
immich-devcontainer-server:
build:
dockerfile: server/Dockerfile
target: dev-container
context: ../..
hostname: immich-devcontainer-server
extra_hosts:
- 'host.docker.internal:host-gateway'
environment:
- IMMICH_SERVER_URL=http://127.0.0.1:2283/
- REDIS_PORT=6400
- REDIS_HOSTNAME=immich-devcontainer-redis
- DB_PORT=5500
- DB_HOSTNAME=immich-devcontainer-database
volumes:
# bind mount host to /workspaces/immich
- ../..:/workspaces/immich
- ./vscode:/workspaces/immich/.vscode
- 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}:/workspaces/immich/server/upload
immich-devcontainer-redis:
extends:
file: ../../docker/docker-compose.dev.yml
service: redis
container_name: immich-devcontainer-redis
command: redis-server --port 6400
healthcheck:
test: redis-cli -p 6400 ping || exit 1
immich-devcontainer-database:
extends:
file: ../../docker/docker-compose.dev.yml
service: database
container_name: immich-devcontainer-database
env_file:
- .env
environment:
PGPORT: 5500
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes:
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
ports:
- 5432:5432
healthcheck:
test: >-
pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1; Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
interval: 5m
start_period: 5m
command: >-
postgres -c shared_preload_libraries=vectors.so -c 'search_path="$$user", public, vectors' -c logging_collector=on -c max_wal_size=2GB -c shared_buffers=512MB -c wal_compression=on
volumes:
cli_node_modules:
e2e_node_modules:
open_api_node_modules:
server_node_modules:
web_node_modules:
immich:
# 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: