From 98004cd1ac97ba434579f8e895dea4f80e884cbc Mon Sep 17 00:00:00 2001 From: Nathan Woodburn Date: Mon, 29 Jan 2024 15:22:39 +1100 Subject: [PATCH] feat: Add docker image --- .gitea/workflows/build.yml | 41 ++++++++++++++++++++++++++++++++++++++ Dockerfile | 17 ++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 .gitea/workflows/build.yml create mode 100644 Dockerfile diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml new file mode 100644 index 0000000..d598885 --- /dev/null +++ b/.gitea/workflows/build.yml @@ -0,0 +1,41 @@ +name: Build Docker +run-name: Build Docker Images +on: + push: + +jobs: + Build Image: + runs-on: [ubuntu-latest, amd] + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Install Docker + run : | + apt-get install ca-certificates curl gnupg + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg + chmod a+r /etc/apt/keyrings/docker.gpg + echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update + apt-get install docker-ce-cli -y + - name: Build Docker image + run : | + echo "${{ secrets.DOCKERGIT_TOKEN }}" | docker login git.woodburn.au -u nathanwoodburn --password-stdin + echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" + tag=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}} + tag=${tag//\//-} + tag_num=${GITHUB_RUN_NUMBER} + echo "tag_num=$tag_num" + + if [[ "$tag" == "main" ]]; then + tag="latest" + else + tag_num="${tag}-${tag_num}" + fi + + + docker build -t firewallet:$tag_num . + docker tag firewallet:$tag_num git.woodburn.au/nathanwoodburn/firewallet:$tag_num + docker push git.woodburn.au/nathanwoodburn/firewallet:$tag_num + docker tag firewallet:$tag_num git.woodburn.au/nathanwoodburn/firewallet:$tag + docker push git.woodburn.au/nathanwoodburn/firewallet:$tag \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..725a071 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM --platform=$BUILDPLATFORM python:3.10-alpine AS builder + +WORKDIR /app + +COPY requirements.txt /app +RUN --mount=type=cache,target=/root/.cache/pip \ + pip3 install -r requirements.txt + +COPY . /app + +# Add mount point for data volume +# VOLUME /data + +ENTRYPOINT ["python3"] +CMD ["server.py"] + +FROM builder as dev-envs \ No newline at end of file