version: '3.7' services: app: container_name: go-api build: context: . dockerfile: Dockerfile image: go-api ports: - 8080:8080 environment: - DB_HOST=mysql - DB_PORT=3306 - DB_USER=root - DB_PASSWORD=password - DB_NAME=mydbusers depends_on: mysql: condition: service_healthy networks: - go-network mysql: container_name: go-mysql image: mysql:latest environment: - MYSQL_ROOT_PASSWORD=password - MYSQL_DATABASE=mydbusers volumes: - dbdata:/var/lib/mysql - ./initdb:/docker-entrypoint-initdb.d ports: - "3306:3306" networks: - go-network healthcheck: test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ] interval: 10s timeout: 5s retries: 3 volumes: dbdata: networks: go-network: driver: bridge