Files
ai-code-app/docker-compose.yml
2026-04-21 03:33:23 +09:00

153 lines
4.4 KiB
YAML
Executable File

services:
photoprism:
image: photoprism/photoprism:latest
container_name: photoprism
logging:
driver: json-file
options:
max-size: "200m"
max-file: "2"
depends_on:
- photoprism-db
ports:
- '127.0.0.1:${PHOTOPRISM_PORT:-2342}:2342'
volumes:
- type: bind
source: ${PHOTOPRISM_ORIGINALS_SOURCE:-/mnt/usb/photos}
target: /photoprism/originals
read_only: true
bind:
create_host_path: false
- photoprism-storage:/photoprism/storage
environment:
PHOTOPRISM_ADMIN_USER: ${PHOTOPRISM_ADMIN_USER:-admin}
PHOTOPRISM_ADMIN_PASSWORD: ${PHOTOPRISM_ADMIN_PASSWORD:-ChangeMe1234}
PHOTOPRISM_SITE_URL: ${PHOTOPRISM_SITE_URL:-https://photo.sm-home.cloud/}
PHOTOPRISM_ORIGINALS_PATH: /photoprism/originals
PHOTOPRISM_STORAGE_PATH: /photoprism/storage
PHOTOPRISM_READONLY: ${PHOTOPRISM_READONLY:-true}
PHOTOPRISM_DATABASE_DRIVER: mysql
PHOTOPRISM_DATABASE_SERVER: photoprism-db:3306
PHOTOPRISM_DATABASE_NAME: ${PHOTOPRISM_DATABASE_NAME:-photoprism}
PHOTOPRISM_DATABASE_USER: ${PHOTOPRISM_DATABASE_USER:-photoprism}
PHOTOPRISM_DATABASE_PASSWORD: ${PHOTOPRISM_DATABASE_PASSWORD:-photoprism}
restart: unless-stopped
networks:
- default
- work-backend
photoprism-db:
image: mariadb:11
container_name: photoprism-db
logging:
driver: json-file
options:
max-size: "200m"
max-file: "2"
command: --innodb-buffer-pool-size=512M --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
environment:
MARIADB_AUTO_UPGRADE: "1"
MARIADB_DATABASE: ${PHOTOPRISM_DATABASE_NAME:-photoprism}
MARIADB_USER: ${PHOTOPRISM_DATABASE_USER:-photoprism}
MARIADB_PASSWORD: ${PHOTOPRISM_DATABASE_PASSWORD:-photoprism}
MARIADB_ROOT_PASSWORD: ${PHOTOPRISM_DATABASE_ROOT_PASSWORD:-photoprism-root}
volumes:
- photoprism-db:/var/lib/mysql
restart: unless-stopped
networks:
- default
- work-backend
prod-app:
image: node:${NODE_VERSION:-22.22.2}-bookworm
container_name: ai-code-app-prod
logging:
driver: json-file
options:
max-size: "200m"
max-file: "2"
user: "0:0"
cpus: 1.0
mem_limit: 1536m
working_dir: /prod-app
ports:
- '127.0.0.1:5173:5173'
volumes:
- ${PROD_APP_SOURCE:-.}:/prod-app
- ./.docker/prod-app/node_modules:/prod-app/node_modules
- ./.docker/prod-app/home:/home/how2ice
networks:
- default
- work-backend
environment:
HOME: /home/how2ice
NPM_CONFIG_CACHE: /home/how2ice/.npm
WORK_SERVER_URL: http://work-server:3100
VITE_DISABLE_APP_UPDATE: "true"
command: >
sh -c "npm ci --legacy-peer-deps && npm run build:test-app && npm run preview:test-app -- --host 0.0.0.0 --port 5173 --strictPort"
app:
image: node:${NODE_VERSION:-22.22.2}-bookworm
logging:
driver: json-file
options:
max-size: "200m"
max-file: "2"
user: "0:0"
cpus: 1.0
mem_limit: 1536m
working_dir: /app
ports:
- '127.0.0.1:5174:5173'
volumes:
- ./:/app
- app-node-modules:/app/node_modules
- app-home:/home/how2ice
networks:
- default
- work-backend
environment:
HOME: /home/how2ice
NPM_CONFIG_CACHE: /home/how2ice/.npm
WORK_SERVER_URL: http://work-server:3100
command: >
sh -c "npm ci --legacy-peer-deps && npm run build:test-app && npm run preview:test-app -- --host 0.0.0.0 --port 5173 --strictPort"
release-app:
image: node:${NODE_VERSION:-22.22.2}-bookworm
container_name: ai-code-app-release
logging:
driver: json-file
options:
max-size: "200m"
max-file: "2"
user: "0:0"
cpus: 1.0
mem_limit: 1536m
working_dir: /release-app
ports:
- '127.0.0.1:5175:5173'
volumes:
- ${RELEASE_APP_SOURCE:-.}:/release-app
- ./.docker/release-app/node_modules:/release-app/node_modules
- ./.docker/release-app/home:/home/how2ice
networks:
- default
- work-backend
environment:
HOME: /home/how2ice
NPM_CONFIG_CACHE: /home/how2ice/.npm
command: >
sh -c "npm ci --legacy-peer-deps && npm run dev -- --host 0.0.0.0 --port 5173"
networks:
work-backend:
name: work-backend
volumes:
app-node-modules:
app-home:
photoprism-storage:
photoprism-db: