diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..6a48e8e --- /dev/null +++ b/.dockerignore @@ -0,0 +1,13 @@ +# SPDX-FileCopyrightText: WTF Kooperative eG +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +* +!Pipfile +!Pipfile.lock +!data/ +!ki/ +!LICENSES/ +!migrations/ +!app.py +!run_prod.py diff --git a/.drone.yml b/.drone.yml index 1af29d9..42b0b8a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -15,16 +15,18 @@ trigger: steps: - name: install-lint-test - image: git.wtf-eg.de/kompetenzinventar/builder:1.0.2 + image: python:3.8.18-alpine + env: + PYROOT: '/pyroot' + PYTHONUSERBASE: '/pyroot' commands: + - apk add --no-cache gcc g++ musl-dev python3-dev + - pip3 install pipenv - pipenv install --dev - pipenv run flake8 - pipenv run reuse lint - pipenv run python -m unittest discover ki -image_pull_secrets: - - dockerconfig - --- kind: pipeline type: docker @@ -41,7 +43,7 @@ depends_on: steps: - name: docker-publish - image: plugins/docker + image: plugins/docker:20.17.3 settings: registry: git.wtf-eg.de repo: git.wtf-eg.de/kompetenzinventar/backend @@ -68,7 +70,7 @@ depends_on: steps: - name: deploy-dev - image: appleboy/drone-ssh + image: appleboy/drone-ssh:1.7.5 settings: host: - dev01.wtf-eg.net @@ -91,14 +93,19 @@ trigger: steps: - name: install-lint-test - image: git.wtf-eg.de/kompetenzinventar/builder:1.0.2 + image: python:3.8.18-alpine + env: + PYROOT: '/pyroot' + PYTHONUSERBASE: '/pyroot' commands: + - apk add --no-cache gcc g++ musl-dev python3-dev + - pip3 install pipenv - pipenv install --dev - pipenv run flake8 - pipenv run reuse lint - pipenv run python -m unittest discover ki - name: docker-publish - image: plugins/docker + image: plugins/docker:20.17.3 settings: registry: git.wtf-eg.de repo: git.wtf-eg.de/kompetenzinventar/backend diff --git a/Dockerfile b/Dockerfile index dd0efbc..304abf6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,17 @@ # # SPDX-License-Identifier: AGPL-3.0-or-later -FROM git.wtf-eg.de/kompetenzinventar/builder:1.0.2 as builder +FROM python:3.8.18-alpine AS builder + +ENV PYROOT=/pyroot +ENV PYTHONUSERBASE=$PYROOT + +RUN apk add --no-cache \ + gcc \ + g++ \ + musl-dev \ + python3-dev && \ + pip3 install pipenv COPY Pipfile* ./ @@ -10,7 +20,10 @@ RUN PIP_USER=1 PIP_IGNORE_INSTALLED=1 pipenv install --system --deploy --ignore- RUN pip3 uninstall --yes pipenv -FROM git.wtf-eg.de/kompetenzinventar/base:1.0.2 as ki-backend +FROM python:3.8.18-alpine AS ki-backend + +ENV PYROOT=/pyroot +ENV PYTHONUSERBASE=$PYROOT # Install six explicitly. Otherwise Python complains about it missing. RUN pip3 install six