Skip to content

Commit

Permalink
Merge pull request #65 from OpenConext/feature/docker_build
Browse files Browse the repository at this point in the history
Feature/docker build
  • Loading branch information
quartje authored Apr 11, 2024
2 parents 79f2a3c + 5afa1e2 commit 5c05578
Show file tree
Hide file tree
Showing 4 changed files with 113 additions and 0 deletions.
74 changes: 74 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
name: Deploy

on:
push:
tags:
- "*"
workflow_dispatch:

jobs:
deployment:
permissions:
packages: write
environment: deploy
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for GUI Docker
id: meta_gui
uses: docker/metadata-action@v5
with:
images: ghcr.io/openconext/openconext-stats/stats-gui
flavor: |
latest=false
tags: |
type=ref,event=tag
type=raw,event=tag,value=latest
type=semver,event=tag,pattern={{version}}
type=raw,event=workflow_dispatch,value=snapshot
- name: Extract metadata (tags, labels) for Server Docker
id: meta_server
uses: docker/metadata-action@v5
with:
images: ghcr.io/openconext/openconext-stats/stats-server
flavor: |
latest=false
tags: |
type=ref,event=tag
type=raw,event=tag,value=latest
type=semver,event=tag,pattern={{version}}
type=raw,event=workflow_dispatch,value=snapshot
- name: Build and push the manage gui image
uses: docker/build-push-action@v5
with:
context: .
file: docker/Dockerfile.frontend
platforms: linux/amd64
push: true
tags: ${{ steps.meta_gui.outputs.tags }}
labels: ${{ steps.meta_gui.outputs.labels }}

- name: Build and push the manage server image
uses: docker/build-push-action@v5
with:
context: .
file: docker/Dockerfile.server
platforms: linux/amd64
push: true
tags: ${{ steps.meta_server.outputs.tags }}
labels: ${{ steps.meta_server.outputs.labels }}
15 changes: 15 additions & 0 deletions docker/Dockerfile.frontend
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
FROM node:20-slim as build
WORKDIR /var/www/html
COPY client/ /var/www/html/
RUN yarn install
RUN yarn build

FROM ghcr.io/openconext/openconext-basecontainers/apache2:latest
RUN apt update && \
apt -y install libapache2-mod-auth-openidc && \
apt autoremove -y && \
apt clean && \
apt autoclean && \
rm -rf /var/lib/apt/lists/*

COPY --from=build /var/www/html/build/ /var/www/html/public/
22 changes: 22 additions & 0 deletions docker/Dockerfile.server
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
FROM python:3.9-slim-buster as build
COPY requirements/base.txt /
ENV DEBIAN_FRONTEND noninteractive
RUN apt clean && apt autoclean && apt update && \
apt install -y --no-install-recommends pkg-config default-libmysqlclient-dev build-essential
RUN pip install -r /base.txt


FROM python:3.9-slim-buster
WORKDIR /app
ENV DEBIAN_FRONTEND noninteractive
RUN apt -y update && \
apt -y upgrade && \
apt autoremove -y && \
apt clean && \
apt autoclean && \
rm -rf /var/lib/apt/lists/*
COPY --from=build /usr/local/lib/python3.9/site-packages /usr/local/lib/python3.9/site-packages
COPY --from=build /usr/local/bin/gunicorn /usr/local/bin/gunicorn
COPY server/ /app/server/
RUN mkdir /app/log/
CMD ["/usr/local/bin/gunicorn", "--worker-class", "eventlet", "--workers", "8", "--bind", "0.0.0.0:80", "server.__main__:app"]
2 changes: 2 additions & 0 deletions requirements/base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,6 @@ munch==4.0.0
isoweek==1.3.3
requests==2.31.0
mysqlclient==2.2.4
gunicorn==21.2.0
eventlet==0.36.0
werkzeug==3.0.2

0 comments on commit 5c05578

Please sign in to comment.