version: '3' # Common environment vars # These are the credentials for the portal # And the URI of the server x-common-env: &common-env PORTAL_USER: ${PORTAL_USER} PORTAL_PASS: ${PORTAL_PASS} OAUTH_EXPIRED_TTL: ${OAUTH_EXPIRED_TTL} SERVER_URI: "https://eduvpnserver" # Define a network so that the containers can talk with eachother using their service name networks: eduvpn_network: ipam: driver: default config: - subnet: 172.20.0.0/24 # Defines the services services: # The eduvpn server with portal eduvpnserver: build: context: "." dockerfile: 'ci/docker/eduvpn-server.docker' sysctls: # needed for wireguard permissions, otherwise we get a permisison failed - net.ipv6.conf.all.disable_ipv6=0 networks: eduvpn_network: ipv4_address: 172.20.0.6 cap_add: # needed for wireguard - NET_ADMIN environment: *common-env healthcheck: test: ["CMD", "/eduvpn/server/healthcheck.sh"] # Wait for wireguard to come online interval: 5s timeout: 10s retries: 10 # The container for testing the go code gotest: build: context: "." dockerfile: 'ci/docker/go-test.docker' environment: *common-env networks: eduvpn_network: ipv4_address: 172.20.0.5 # Wait for eduvpn server to come online depends_on: eduvpnserver: condition: service_healthy