From 23e8495a7f651419f996d81f59eca7a2045bb7c9 Mon Sep 17 00:00:00 2001 From: knowname Date: Wed, 19 Jun 2024 13:28:50 +0200 Subject: [PATCH] github workflow: build docker alpine image --- .github/workflows/osrm-backend-docker.yml | 31 +++++++++++++++- .github/workflows/osrm-backend.yml | 43 +++++++++++++++++++++++ 2 files changed, 73 insertions(+), 1 deletion(-) diff --git a/.github/workflows/osrm-backend-docker.yml b/.github/workflows/osrm-backend-docker.yml index e0cf8939d..45d5c8daf 100644 --- a/.github/workflows/osrm-backend-docker.yml +++ b/.github/workflows/osrm-backend-docker.yml @@ -80,5 +80,34 @@ jobs: build-args: | DOCKER_TAG=${{ join(steps.meta.outputs.tags ) }} + - name: Build container alpine image - debug + uses: docker/build-push-action@v2 + with: + push: true + platforms: linux/amd64,linux/arm64 + file: ./docker/Dockerfile-alpine + tags: ${{ steps.metadebug.outputs.tags }} + build-args: | + DOCKER_TAG=${{ join(steps.metadebug.outputs.tags ) }}-alpine - + + - name: Build container alpine image - assertions + uses: docker/build-push-action@v2 + with: + push: true + platforms: linux/amd64,linux/arm64 + file: ./docker/Dockerfile-alpine + tags: ${{ steps.metaassertions.outputs.tags }} + build-args: | + DOCKER_TAG=${{ join(steps.metaassertions.outputs.tags ) }}-alpine + + # build and publish "normal" image as last to get it listed on top + - name: Build container alpine image - normal + uses: docker/build-push-action@v2 + with: + push: true + platforms: linux/amd64,linux/arm64 + file: ./docker/Dockerfile-alpine + tags: ${{ steps.meta.outputs.tags }} + build-args: | + DOCKER_TAG=${{ join(steps.meta.outputs.tags ) }}-alpine diff --git a/.github/workflows/osrm-backend.yml b/.github/workflows/osrm-backend.yml index 98c6fbd0f..df945151a 100644 --- a/.github/workflows/osrm-backend.yml +++ b/.github/workflows/osrm-backend.yml @@ -159,6 +159,49 @@ jobs: curl --retry-delay 3 --retry 10 --retry-all-errors "http://127.0.0.1:5000/route/v1/driving/13.388860,52.517037;13.385983,52.496891?steps=true" docker stop osrm-container + docker-alpine-image: + needs: format-taginfo-docs + runs-on: ubuntu-22.04 + continue-on-error: false + steps: + - name: Check out the repo + uses: actions/checkout@v4 + - name: Enable osm.pbf cache + uses: actions/cache@v4 + with: + path: berlin-latest.osm.pbf + key: v1-berlin-osm-pbf + restore-keys: | + v1-berlin-osm-pbf + - name: Docker alpine build + run: | + docker build -t osrm-backend-local -f docker/Dockerfile-alpine . + - name: Test Docker alpine image + run: | + if [ ! -f "${PWD}/berlin-latest.osm.pbf" ]; then + wget http://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf + fi + TAG=osrm-backend-local + # when `--memory-swap` value equals `--memory` it means container won't use swap + # see https://docs.docker.com/config/containers/resource_constraints/#--memory-swap-details + MEMORY_ARGS="--memory=1g --memory-swap=1g" + docker run $MEMORY_ARGS -t -v "${PWD}:/data" "${TAG}" osrm-extract --dump-nbg-graph -p /opt/car.lua /data/berlin-latest.osm.pbf + docker run $MEMORY_ARGS -t -v "${PWD}:/data" "${TAG}" osrm-components /data/berlin-latest.osrm.nbg /data/berlin-latest.geojson + if [ ! -s "${PWD}/berlin-latest.geojson" ] + then + >&2 echo "No berlin-latest.geojson found" + exit 1 + fi + + # removing `.osrm.nbg` to check that whole pipeline works without it + rm -rf "${PWD}/berlin-latest.osrm.nbg" + + docker run $MEMORY_ARGS -t -v "${PWD}:/data" "${TAG}" osrm-partition /data/berlin-latest.osrm + docker run $MEMORY_ARGS -t -v "${PWD}:/data" "${TAG}" osrm-customize /data/berlin-latest.osrm + docker run $MEMORY_ARGS --name=osrm-container -t -p 5000:5000 -v "${PWD}:/data" "${TAG}" osrm-routed --algorithm mld /data/berlin-latest.osrm & + curl --retry-delay 3 --retry 10 --retry-all-errors "http://127.0.0.1:5000/route/v1/driving/13.388860,52.517037;13.385983,52.496891?steps=true" + docker stop osrm-container + build-test-publish: needs: format-taginfo-docs strategy: