From c64fa2e32753034fd02fcac5025ded7ea23ac39d Mon Sep 17 00:00:00 2001 From: motty Date: Sat, 11 Nov 2023 03:59:56 +0900 Subject: [PATCH 1/2] add docker release build --- .github/workflows/docker_release_build.yaml | 98 +++++++++++++++++++++ deploy/Dockerfile | 5 +- deploy/Dockerfile_alembic | 13 +++ deploy/Dockerfile_app | 13 +++ deploy/Dockerfile_graph | 20 +++++ 5 files changed, 146 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/docker_release_build.yaml create mode 100644 deploy/Dockerfile_alembic create mode 100644 deploy/Dockerfile_app create mode 100644 deploy/Dockerfile_graph diff --git a/.github/workflows/docker_release_build.yaml b/.github/workflows/docker_release_build.yaml new file mode 100644 index 0000000..fd2e48c --- /dev/null +++ b/.github/workflows/docker_release_build.yaml @@ -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 }}/motty-mio2/kb_2315/base:latest + ${{ env.REGISTRY }}/motty-mio2/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 }}/motty-mio2/kb_2315/alembic:latest + ${{ env.REGISTRY }}/motty-mio2/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 }}/motty-mio2/kb_2315/app:latest + ${{ env.REGISTRY }}/motty-mio2/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 }}/motty-mio2/kb_2315/graph:latest + ${{ env.REGISTRY }}/motty-mio2/kb_2315/graph:${{ steps.build_version.outputs.VERSION }} diff --git a/deploy/Dockerfile b/deploy/Dockerfile index 7dd2c77..8649e9e 100644 --- a/deploy/Dockerfile +++ b/deploy/Dockerfile @@ -1,7 +1,7 @@ FROM python:3.11-slim -COPY ../. /src WORKDIR /src +COPY ../requirements.lock ../pyproject.toml ../README.md /src/ ARG UID=1000 ARG GID=1000 @@ -10,5 +10,4 @@ RUN groupadd -g $GID dev && \ useradd -l -m -u $UID -g $GID dev && \ pip install -r requirements.lock --no-cache-dir -USER dev -CMD ["python", "./src/main.py"] \ No newline at end of file +USER dev \ No newline at end of file diff --git a/deploy/Dockerfile_alembic b/deploy/Dockerfile_alembic new file mode 100644 index 0000000..1c45533 --- /dev/null +++ b/deploy/Dockerfile_alembic @@ -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"] diff --git a/deploy/Dockerfile_app b/deploy/Dockerfile_app new file mode 100644 index 0000000..f163b04 --- /dev/null +++ b/deploy/Dockerfile_app @@ -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"] diff --git a/deploy/Dockerfile_graph b/deploy/Dockerfile_graph new file mode 100644 index 0000000..3d24cb7 --- /dev/null +++ b/deploy/Dockerfile_graph @@ -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" \ + ] From 457becf822cc854e8039b2ca6a27e4b280c54e63 Mon Sep 17 00:00:00 2001 From: motty Date: Sat, 11 Nov 2023 12:54:59 +0900 Subject: [PATCH 2/2] fix repo --- .github/workflows/docker_release_build.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docker_release_build.yaml b/.github/workflows/docker_release_build.yaml index fd2e48c..139284a 100644 --- a/.github/workflows/docker_release_build.yaml +++ b/.github/workflows/docker_release_build.yaml @@ -55,8 +55,8 @@ jobs: push: true # platforms: linux/amd64,linux/arm64 tags: | - ${{ env.REGISTRY }}/motty-mio2/kb_2315/base:latest - ${{ env.REGISTRY }}/motty-mio2/kb_2315/base:${{ steps.build_version.outputs.VERSION }} + ${{ env.REGISTRY }}/jphacks/kb_2315/base:latest + ${{ env.REGISTRY }}/jphacks/kb_2315/base:${{ steps.build_version.outputs.VERSION }} - name: replace base version run: | @@ -72,8 +72,8 @@ jobs: push: true # platforms: linux/amd64,linux/arm64 tags: | - ${{ env.REGISTRY }}/motty-mio2/kb_2315/alembic:latest - ${{ env.REGISTRY }}/motty-mio2/kb_2315/alembic:${{ steps.build_version.outputs.VERSION }} + ${{ 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 @@ -83,8 +83,8 @@ jobs: push: true # platforms: linux/amd64,linux/arm64 tags: | - ${{ env.REGISTRY }}/motty-mio2/kb_2315/app:latest - ${{ env.REGISTRY }}/motty-mio2/kb_2315/app:${{ steps.build_version.outputs.VERSION }} + ${{ 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 @@ -94,5 +94,5 @@ jobs: push: true # platforms: linux/amd64,linux/arm64 tags: | - ${{ env.REGISTRY }}/motty-mio2/kb_2315/graph:latest - ${{ env.REGISTRY }}/motty-mio2/kb_2315/graph:${{ steps.build_version.outputs.VERSION }} + ${{ env.REGISTRY }}/jphacks/kb_2315/graph:latest + ${{ env.REGISTRY }}/jphacks/kb_2315/graph:${{ steps.build_version.outputs.VERSION }}