Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/release docker #39

Merged
merged 3 commits into from
Nov 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 98 additions & 0 deletions .github/workflows/docker_release_build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: Docker Release Build

on:
push:
branches-ignore:
- "**"
tags:
- "v*"

env:
REGISTRY: ghcr.io

jobs:
build-and-push:
runs-on: ubuntu-20.04

permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v3

- name: get_version
id: build_version
run: |
file_path="pyproject.toml"
version=$(awk -F ' = ' '$1=="version" {gsub(/"/, "", $2); print $2}' "$file_path")
echo "VERSION=$version" >> $GITHUB_OUTPUT

- name: Check Release Variables
run: |
if [[ "v${{ steps.build_version.outputs.VERSION }}" != "${{ github.ref_name }}" ]]; then
echo "pyproject or tag version mismatch"
exit 1
fi

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

- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build Base image
uses: docker/build-push-action@v5
with:
context: .
file: ./deploy/Dockerfile_alembic
push: true
# platforms: linux/amd64,linux/arm64
tags: |
${{ env.REGISTRY }}/jphacks/kb_2315/base:latest
${{ env.REGISTRY }}/jphacks/kb_2315/base:${{ steps.build_version.outputs.VERSION }}

- name: replace base version
run: |
sed -i -e "s/master/${{ steps.build_version.outputs.VERSION }}/" ./deploy/Dockerfile_alembic
sed -i -e "s/master/${{ steps.build_version.outputs.VERSION }}/" ./deploy/Dockerfile_app
sed -i -e "s/master/${{ steps.build_version.outputs.VERSION }}/" ./deploy/Dockerfile_graph

- name: Build Alembic image
uses: docker/build-push-action@v5
with:
context: .
file: ./deploy/Dockerfile_alembic
push: true
# platforms: linux/amd64,linux/arm64
tags: |
${{ env.REGISTRY }}/jphacks/kb_2315/alembic:latest
${{ env.REGISTRY }}/jphacks/kb_2315/alembic:${{ steps.build_version.outputs.VERSION }}

- name: Build FastAPI image
uses: docker/build-push-action@v5
with:
context: .
file: ./deploy/Dockerfile_app
push: true
# platforms: linux/amd64,linux/arm64
tags: |
${{ env.REGISTRY }}/jphacks/kb_2315/app:latest
${{ env.REGISTRY }}/jphacks/kb_2315/app:${{ steps.build_version.outputs.VERSION }}

- name: Build Streamlit image
uses: docker/build-push-action@v5
with:
context: .
file: ./deploy/Dockerfile_graph
push: true
# platforms: linux/amd64,linux/arm64
tags: |
${{ env.REGISTRY }}/jphacks/kb_2315/graph:latest
${{ env.REGISTRY }}/jphacks/kb_2315/graph:${{ steps.build_version.outputs.VERSION }}
13 changes: 13 additions & 0 deletions deploy/Dockerfile_alembic
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM ghcr.io/motty-mio2/kb_2315/base:master as base

WORKDIR /src
COPY ../. /src/

ARG UID=1000
ARG GID=1000

RUN pip install -e . --no-cache-dir

USER dev

CMD ["alembic", "upgrade", "head"]
13 changes: 13 additions & 0 deletions deploy/Dockerfile_app
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM ghcr.io/motty-mio2/kb_2315/base:master as base

WORKDIR /src
COPY ../. /src/

ARG UID=1000
ARG GID=1000

RUN pip install -e . --no-cache-dir

USER dev

CMD ["python", "./src/main.py"]
20 changes: 20 additions & 0 deletions deploy/Dockerfile_graph
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
FROM ghcr.io/motty-mio2/kb_2315/base:master as base

WORKDIR /src
COPY ../. /src/

ARG UID=1000
ARG GID=1000

RUN pip install -e . --no-cache-dir

USER dev

CMD ["streamlit", "run", "./src/graph.py", \
"--browser.gatherUsageStats=false", \
"--server.address=0.0.0.0", \
"--server.baseUrlPath=analyze", \
"--server.port=8501", \
"--server.enableCORS=false", \
"--server.enableXsrfProtection=false" \
]