--- x-ci-defaults: &ci_defaults dns: - ${INFINITO_DNS_IP} dns_opt: - ndots:1 # Bare CI/runtime stack. Cache layers in via compose/cache.override.yml. services: coredns: image: coredns/coredns:1.14.4 container_name: infinito-coredns command: ["-conf", "/Corefile"] volumes: - ./compose/coredns/Corefile:/Corefile:ro networks: default: ipv4_address: ${INFINITO_DNS_IP} infinito: networks: default: ipv4_address: ${INFINITO_IP4} build: context: . dockerfile: Dockerfile network: host args: INFINITO_PARENT_IMAGE: ${INFINITO_PARENT_IMAGE:?Run 'make dotenv' to generate the .env single source of truth} INFINITO_SRC_DIR: ${INFINITO_SRC_DIR:?Run 'make dotenv' to generate the .env single source of truth} INFINITO_VENV_DIR: ${INFINITO_VENV_DIR:?Run 'make dotenv' to generate the .env single source of truth} NIX_CONFIG: ${NIX_CONFIG} image: "${INFINITO_IMAGE}" pull_policy: "${INFINITO_PULL_POLICY:?Run 'make dotenv' to generate the .env single source of truth}" depends_on: coredns: condition: service_started command: - /sbin/init - systemd.log_target=console - systemd.log_level=debug - systemd.journald.forward_to_console=1 - systemd.journald.max_level_console=debug stop_signal: SIGRTMIN+3 # systemd needs the host cgroup namespace. privileged: true cgroup: host tmpfs: - /run - /run/lock tty: true stdin_open: true container_name: ${INFINITO_CONTAINER:?Run 'make dotenv' to generate the .env single source of truth} restart: "no" # Defaults of 0 map to "unlimited" in dockerd. mem_limit: ${INFINITO_MEM_LIMIT:?Run 'make dotenv' to generate the .env single source of truth} memswap_limit: ${INFINITO_MEMSWAP_LIMIT:?Run 'make dotenv' to generate the .env single source of truth} cpus: ${INFINITO_CPUS:?Run 'make dotenv' to generate the .env single source of truth} <<: *ci_defaults volumes: - /sys/fs/cgroup:/sys/fs/cgroup:rw - .:${INFINITO_SRC_DIR} - ${INFINITO_DOCKER_VOLUME:?Run 'make dotenv' to generate the .env single source of truth}:${INFINITO_DOCKER_MOUNT:?Run 'make dotenv' to generate the .env single source of truth} - infinito:/var/lib/infinito/ - letsencrypt:/etc/letsencrypt/ environment: INFINITO_BUILDKIT_ENABLED: ${INFINITO_BUILDKIT_ENABLED} INFINITO_CONTAINER_CA_ENABLED: ${INFINITO_CONTAINER_CA_ENABLED} INFINITO_DNS_IP: ${INFINITO_DNS_IP} INFINITO_DOMAIN: ${INFINITO_DOMAIN} INFINITO_IP4: ${INFINITO_IP4} INFINITO_IP6: ${INFINITO_IP6} INFINITO_PLAYWRIGHT_KEEP: ${INFINITO_PLAYWRIGHT_KEEP} INFINITO_SRC_DIR: ${INFINITO_SRC_DIR} PYTHONHTTPSVERIFY: "1" GIT_SSL_NO_VERIFY: "0" ports: - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:25:25" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:110:110" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:143:143" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:465:465" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:587:587" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:993:993" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:995:995" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:4190:4190" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:80:80" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:443:443" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:8448:8448" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:3478-3480:3478-3480/udp" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:3478-3480:3478-3480" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:1935:1935" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:2201:2201" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:2202:2202" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:2203:22" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:33552:33552" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:48081-48083:48081-48083" - "${INFINITO_BIND_IP:?Run 'make dotenv' to generate the .env single source of truth}:48087:48087" volumes: docker: infinito: letsencrypt: networks: default: driver: bridge driver_opts: com.docker.network.driver.mtu: "${INFINITO_OUTER_NETWORK_MTU:?Run 'make dotenv' to generate the .env single source of truth}" ipam: config: - subnet: ${INFINITO_SUBNET:?Run 'make dotenv' to generate the .env single source of truth} gateway: ${INFINITO_GATEWAY:?Run 'make dotenv' to generate the .env single source of truth}