services: server: build: context: . pull: false args: GO_IMAGE: ${GO_IMAGE:-public.ecr.aws/docker/library/golang:1.25-alpine} restart: unless-stopped environment: UDP_ADDR: "0.0.0.0:9999" DB_PATH: "/data/nanometrics.db" HTTP_ADDR: "0.0.0.0:8080" MQTT_BROKER: "tcp://10.0.0.3:1883" MQTT_TOPIC_BASE: "nanometrics/agents" volumes: - nanometrics_data:/data ports: - "9999:9999/udp" dashboard: image: ${NGINX_IMAGE:-public.ecr.aws/docker/library/nginx:alpine} pull_policy: if_not_present restart: unless-stopped volumes: - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro - ../dashboard:/usr/share/nginx/html:ro ports: - "80:80" depends_on: - server iperf3: build: context: . dockerfile: Dockerfile.iperf3 args: ALPINE_IMAGE: ${ALPINE_IMAGE:-public.ecr.aws/docker/library/alpine:latest} restart: unless-stopped command: ["-s"] ports: - "5202:5201/tcp" - "5202:5201/udp" volumes: nanometrics_data: