diff options
| author | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2023-01-05 13:30:07 +0100 |
|---|---|---|
| committer | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2023-01-05 13:32:27 +0100 |
| commit | 83f9bc5e1314c32422d4030763853e76fd56290c (patch) | |
| tree | ce5d3cbb24f34ce9817b42ed8f8f0c714bd9f441 /ci | |
| parent | 6f6c89eac6a6a5d036be4f2f826d8d96c1052b88 (diff) | |
CI: Support Podman as an alternative to Docker
Podman-compose (can be aliased to docker-compose now) does not have
the exact same options. We move the compose file to the root to
support podman. This is also better because users can just execute
docker-compose in the root.
Diffstat (limited to 'ci')
| -rw-r--r-- | ci/docker/docker-compose.yml | 52 | ||||
| -rw-r--r-- | ci/docker/eduvpnserver.docker (renamed from ci/docker/eduvpn-server.docker) | 0 | ||||
| -rw-r--r-- | ci/docker/gotest.docker (renamed from ci/docker/go-test.docker) | 0 | ||||
| -rwxr-xr-x | ci/startcompose.sh | 13 |
4 files changed, 9 insertions, 56 deletions
diff --git a/ci/docker/docker-compose.yml b/ci/docker/docker-compose.yml deleted file mode 100644 index 066c41d..0000000 --- a/ci/docker/docker-compose.yml +++ /dev/null @@ -1,52 +0,0 @@ -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 diff --git a/ci/docker/eduvpn-server.docker b/ci/docker/eduvpnserver.docker index fd9891d..fd9891d 100644 --- a/ci/docker/eduvpn-server.docker +++ b/ci/docker/eduvpnserver.docker diff --git a/ci/docker/go-test.docker b/ci/docker/gotest.docker index ec98d0c..ec98d0c 100644 --- a/ci/docker/go-test.docker +++ b/ci/docker/gotest.docker diff --git a/ci/startcompose.sh b/ci/startcompose.sh index 5f0338f..e65fa86 100755 --- a/ci/startcompose.sh +++ b/ci/startcompose.sh @@ -13,9 +13,14 @@ fi # Get absolute path to current directory this script is in SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +pushd "$SCRIPT_DIR"/.. + # Create self-signed certificate -mkdir -p "$SCRIPT_DIR"/docker/selfsigned -"$SCRIPT_DIR"/docker/createcert.sh +mkdir -p ci/docker/selfsigned +./ci/docker/createcert.sh + +# Up the containers and abort on exit. Also rebuild the necessary steps if there are changes +# You can symlink docker-compose to podman-compose to use Podman +docker-compose up --build --force-recreate --abort-on-container-exit -# Get the parent directory to get the root directory -docker-compose --file ci/docker/docker-compose.yml --project-directory "$SCRIPT_DIR"/.. up --build --force-recreate --abort-on-container-exit +popd |
