services: syncer: build: context: . dockerfile: docker/syncer/Dockerfile image: rpm-mirror-syncer:latest container_name: rpm-mirror-syncer restart: unless-stopped env_file: - .env volumes: # sync-cache also holds the mirror's private GPG signing key and its # revocation certificate (WORK_DIR/gnupg) - intentionally NOT mounted # into the nginx container, only repo-data (public files) is. - repo-data:/srv/repo - sync-cache:/var/cache/rpm-mirror-sync # Local sources.yaml, only used when SOURCES_GIT_REPO is empty (see # .env). Remove/comment this out if you fetch the list from git. #- ${LOCAL_SOURCES_YAML:-./sources.example.yaml}:/config/sources.yaml:ro nginx: image: nginx:alpine container_name: rpm-mirror-nginx restart: unless-stopped depends_on: - syncer env_file: - .env ports: - "${NGINX_PORT:-8080}:80" volumes: - repo-data:/usr/share/nginx/html/repo:ro - ./docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro volumes: repo-data: sync-cache: