From 9f37b66ad3b1eebc899e56504995cea723007b84 Mon Sep 17 00:00:00 2001 From: "philip.cline" Date: Wed, 15 Nov 2023 21:44:30 -0500 Subject: [PATCH 1/3] feat(build-docker): add additional branch to docker build --- .github/workflows/build-docker.yml | 42 ++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .github/workflows/build-docker.yml diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml new file mode 100644 index 000000000..a1c19b63f --- /dev/null +++ b/.github/workflows/build-docker.yml @@ -0,0 +1,42 @@ +name: Create and publish a Docker image +# https://docs.github.com/en/actions/publishing-packages/publishing-docker-images + +on: + push: + branches: ['dev', 'master', 'dev-flex', 'mtc-deploy'] + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + build-and-push-image: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Log in to the Container registry + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + + - name: Build and push Docker image + uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file From 64750413ab9be3d6c7e1e7ad44fd107164a312a2 Mon Sep 17 00:00:00 2001 From: "philip.cline" Date: Thu, 16 Nov 2023 10:02:59 -0500 Subject: [PATCH 2/3] refactor(mtc docker): add Dockerfile, docker compose example --- Dockerfile | 18 ++++++++++++++++++ docker-compose.yml | 26 ++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..a64eddcd4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +# syntax=docker/dockerfile:1 +FROM maven:3.8.7-openjdk-18-slim + +COPY . /datatools + +# Build jar +WORKDIR /datatools +RUN mvn package -DskipTests +RUN cp target/dt*.jar /datatools/ +RUN mv dt*.jar datatools-server.jar + +RUN mkdir -p /var/datatools_gtfs/gtfsplus + +# Launch server +# This relies on a configuration volume and aws volume being present. See `docker-compose.yml`, or the example below +# Try: docker run --publish 4000:4000 -v ~/config/:/config datatools-latest +CMD ["java", "-XX:MaxRAMPercentage=95", "-jar", "datatools-server.jar", "/config/env.yml", "/config/server.yml"] +EXPOSE 4000 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..cc847068d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,26 @@ +version: '3.8' +services: + datatools-server: + build: ./ + ports: + - "4000:4000" + volumes: + - type: bind + source: ./configurations/default/ + target: /config + - type: bind + source: ~/.aws + target: /root/.aws + depends_on: + - mongo + - postgres + mongo: + image: mongo + restart: always + postgres: + environment: + POSTGRES_HOST_AUTH_METHOD: trust + POSTGRES_USER: root + POSTGRES_DB: dmtest + image: postgres + restart: always \ No newline at end of file From 02f15ccd6038e248e0b271014b8d889b6109f172 Mon Sep 17 00:00:00 2001 From: "philip.cline" Date: Thu, 16 Nov 2023 19:02:58 -0500 Subject: [PATCH 3/3] refactor(mtc docker): add comment --- .github/workflows/build-docker.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml index a1c19b63f..a3ebe75cb 100644 --- a/.github/workflows/build-docker.yml +++ b/.github/workflows/build-docker.yml @@ -21,6 +21,7 @@ jobs: uses: actions/checkout@v3 - name: Log in to the Container registry + # Maintain specific commit hash for stability uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 with: registry: ${{ env.REGISTRY }}