1
0
peddlers-of-ketran/docker-compose.yml

73 lines
2.0 KiB
YAML

services:
peddlers-of-ketran:
profiles: [prod]
container_name: ketr.ketran
build:
context: .
dockerfile: Dockerfile
restart: always
env_file:
- .env
ports:
- 8930:8930
volumes:
- ./db:/db:rw
- ./server/routes:/server/routes:ro
working_dir: /server
environment:
- VITE_basePath=/ketr.ketran
peddlers-of-ketran-dev:
profiles: [dev]
container_name: ketr.ketran.dev
hostname: peddlers-server
build:
context: .
dockerfile: Dockerfile.dev
volumes:
- ./server:/server:rw
- ./db:/db:rw
command: ["sh", "-c", "cd /server && npm install --no-audit --no-fund --silent && npm rebuild sqlite3 && npm run start:dev"]
ports:
- 8930:8930
environment:
- NODE_ENV=development
- VITE_basePath=/ketr.ketran
networks:
- peddlers-network
peddlers-client:
profiles: [dev]
container_name: ketr.client
hostname: peddlers-client
build:
context: .
dockerfile: Dockerfile
working_dir: /client
volumes:
- ./client:/client:rw
- ./certs:/certs:ro
ports:
- 3001:3000
environment:
- BROWSER=none
- HTTPS=true
- HOST=0.0.0.0
- WDS_SOCKET_HOST=0.0.0.0
- WDS_SOCKET_PORT=0
- VITE_API_BASE=/ketr.ketran
# Provide paths to TLS key/cert inside the container so Vite can present
# a certificate for the external hostname (e.g. battle-linux.ketrenos.com).
- VITE_HTTPS_KEY=/certs/battle.key
- VITE_HTTPS_CERT=/certs/battle.crt
env_file:
- .env
# Install deps then run vite directly to avoid using the npm wrapper which
# was receiving SIGTERM in the container and making the service appear to
# restart repeatedly.
command: ["bash", "-c", "cd /client && npm install --legacy-peer-deps --silent --no-audit --no-fund && ./node_modules/.bin/vite --host"]
networks:
- peddlers-network
networks:
peddlers-network:
driver: bridge