# Comments are provided throughout this file to help you get started. # If you need more help, visit the Docker compose reference guide at # https://docs.docker.com/compose/compose-file/ # Here the instructions define your application as a service called "server". # This service is built from the Dockerfile in the current directory. # You can add other services your application may depend on here, such as a # database or a cache. For examples, see the Awesome Compose repository: # https://github.com/docker/awesome-compose services: server: build: context: . target: final ports: - 8000:8000 user: "${uid}:${gid}" environment: - ROCKET_DATABASES={fossil_postgres={url="postgres://postgres:$POSTGRES_PASSWORD@db/$POSTGRES_DB", max_connections=10, connect_timeout=10}} - ROCKET_ADDRESS=0.0.0.0 - ROCKET_PORT=$PORT - RUST_LOG=debug - ROCKET_SECRET_KEY=$ROCKET_SECRET_KEY - ADMIN_USERNAME=$ADMIN_USERNAME - ADMIN_PASSWORD=$ADMIN_PASSWORD volumes: - type: bind source: ./web target: /srv/web - type: bind source: ./images target: /srv/images - type: bind source: ./tmpimages target: /srv/tmpimages # The commented out section below is an example of how to define a PostgreSQL # database that your application can use. `depends_on` tells Docker Compose to # start the database before your application. The `db-data` volume persists the # database data between container restarts. The `db-password` secret is used # to set the database password. You must create `db/password.txt` and add # a password of your choosing to it before running `docker compose up`. depends_on: db: condition: service_healthy db: image: postgres restart: always user: postgres volumes: - db-data:/var/lib/postgresql/data environment: - POSTGRES_DB=$POSTGRES_DB - POSTGRES_PASSWORD=$POSTGRES_PASSWORD expose: - 5432 healthcheck: test: [ "CMD", "pg_isready" ] interval: 10s timeout: 5s retries: 5 volumes: db-data: