Files
2026-07-25 11:22:13 +00:00

45 lines
1.4 KiB
YAML

services:
opencode:
build:
context: .
dockerfile: Dockerfile
image: local/opencode-sandbox:pinned-20260528
container_name: opencode
restart: unless-stopped
stop_grace_period: 30s
user: "1000:1000"
command: ["web", "--hostname", "0.0.0.0", "--port", "4096"]
env_file:
- .env
environment:
HOME: /home/opencode
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
read_only: true
tmpfs:
- /.local:size=128m,mode=1777
- /tmp:size=256m,mode=1777,exec
volumes:
- ${OPENCODE_HOME_PATH}:/home/opencode:Z
- ${OPENCODE_CONFIG_PATH}:/home/opencode/.config/opencode:Z
- ${OPENCODE_WORKSPACE_PATH}:/home/opencode/workspace:Z
working_dir: /home/opencode/workspace
networks:
- proxy
labels:
prune.protect: "true"
traefik.enable: "true"
traefik.docker.network: "${TRAEFIK_DOCKER_NETWORK}"
traefik.http.routers.opencode.rule: "Host(`${OPENCODE_DOMAIN}`)"
traefik.http.routers.opencode.entrypoints: "${TRAEFIK_ENTRYPOINT_SECURE}"
traefik.http.routers.opencode.tls: "true"
traefik.http.routers.opencode.tls.certresolver: "${TRAEFIK_CERTRESOLVER}"
traefik.http.routers.opencode.middlewares: "crowdsec-bouncer@file,${TRAEFIK_AUTH_CHAIN}"
traefik.http.services.opencode.loadbalancer.server.port: "4096"
networks:
proxy:
external: true