version: '3.3' networks: devops: name: devops external: true services: teamcity-server: restart: always container_name: teamcity-server user: root ports: - "8111:8111" volumes: - '/teamcity/data:/data/teamcity_server/datadir' - '/teamcity/logs:/opt/teamcity/logs' networks: - devops image: jetbrains/teamcity-server teamcity-agent-1: restart: always container_name: teamcity-agent-1 environment: - 'SERVER_URL=teamcity-server:8111' - DOCKER_IN_DOCKER=start user: root privileged: true networks: - devops volumes: - '/teamcity/agent:/teamcity_agent/conf' - '/var/run/docker.sock:/var/run/docker.sock' - '/opt/buildagent/system:/opt/buildagent/system' - '/opt/buildagent/work:/opt/buildagent/work' - '/opt/buildagent/plugins:/opt/buildagent/plugins' - '/opt/buildagent/temp:/opt/buildagent/temp' - '/opt/buildagent/tools:/opt/buildagent/tools' image: jetbrains/teamcity-agent:2025.03.1-linux-sudo # image: jetbrains/teamcity-agent:2023.11.1-linux-sudo # image: jetbrains/teamcity-agent:2023.05.2-linux-sudo # image: jetbrains/teamcity-agent:latest teamcity-agent-2: restart: always container_name: teamcity-agent-2 environment: - 'SERVER_URL=teamcity-server:8111' - DOCKER_IN_DOCKER=start user: root privileged: true networks: - devops volumes: - '/teamcity/agent2:/teamcity_agent/conf' - '/var/run/docker.sock:/var/run/docker.sock' - '/opt/buildagent/system2:/opt/buildagent/system' - '/opt/buildagent/work2:/opt/buildagent/work' - '/opt/buildagent/plugins2:/opt/buildagent/plugins' - '/opt/buildagent/temp2:/opt/buildagent/temp' - '/opt/buildagent/tools2:/opt/buildagent/tools' image: jetbrains/teamcity-agent:2025.03.1-linux-sudo watchtower: image: containrrr/watchtower container_name: watchtower volumes: - /var/run/docker.sock:/var/run/docker.sock command: teamcity-server node_exporter: image: quay.io/prometheus/node-exporter:latest container_name: node_exporter networks: - devops ports: - "9100:9100" restart: unless-stopped command: - "--path.procfs=/host/proc" - "--path.sysfs=/host/sys" - "--path.rootfs=/host" - "--collector.filesystem.ignored-mount-points=^/(sys|proc|dev)($$|/)" volumes: - "/proc:/host/proc:ro" - "/sys:/host/sys:ro" - "/:/host:ro,rslave" https_portal: container_name: https_portal image: "steveltn/https-portal:1.23.0" restart: unless-stopped networks: - devops # internal network ports: - "80:80" - "443:443" environment: STAGE: "production" # Use Let's Encrypt production server WEBSOCKET: "true" # Enable websocket support DEBUG: "true" RENEW_MARGIN_DAYS: 30 CLIENT_MAX_BODY_SIZE: 0 # FORCE_RENEW: 'true' DOMAINS: > teamcity.phx-erp.de -> teamcity-server:8111 volumes: - ./https_portal/data:/var/lib/https-portal # ssl_certs, vhost.d, htdocs - ./https_portal/log:/var/log/nginx # nginx logs depends_on: - teamcity-server