Skip to content

Commit

Permalink
Merge pull request #576 from ibi-group/mtc-add-docker-build-branch
Browse files Browse the repository at this point in the history
Add additional branch to MTC docker build
  • Loading branch information
philip-cline authored Nov 17, 2023
2 parents 9027b28 + 02f15cc commit 5a4cb5c
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 0 deletions.
43 changes: 43 additions & 0 deletions .github/workflows/build-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
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
# Maintain specific commit hash for stability
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 }}
18 changes: 18 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -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
26 changes: 26 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 5a4cb5c

Please sign in to comment.