Compare commits
42 Commits
docker-lab
...
pyenv
Author | SHA1 | Date | |
---|---|---|---|
47d2c94b79
|
|||
b0dcfacd25
|
|||
86edb246bf | |||
9424e21edc | |||
f02efab07a | |||
08f1104942
|
|||
8dde142f38
|
|||
d1b1636aa2 | |||
3fcd1fa20e | |||
8394400e96 | |||
843050f923 | |||
812913ffe2 | |||
dee80c7e14 | |||
de60ec0d46 | |||
6c6fcea81c | |||
166e0d40c6 | |||
c9b5ab62ed | |||
c0005100b4 | |||
d614039cdd | |||
316236a7e5 | |||
c15faabd6d
|
|||
53eab74e60 | |||
82d908193c | |||
6620a6819a | |||
be6fec18ab
|
|||
9ebae03550 | |||
763a6efc9f | |||
6f04d23e6c
|
|||
155ddc556c
|
|||
a5a85e6032
|
|||
6a3458a596
|
|||
97be8f4667
|
|||
776803fc96 | |||
702f4968f6 | |||
c1285153ef
|
|||
fdc81844b5
|
|||
b804c22a93
|
|||
9a7a9379e2 | |||
5b707ad294 | |||
68bf505cd0
|
|||
2ac03d0c26
|
|||
6b46ea5516
|
13
.dockerignore
Normal file
13
.dockerignore
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-FileCopyrightText: WTF Kooperative eG <https://wtf-eg.de/>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
*
|
||||||
|
!Pipfile
|
||||||
|
!Pipfile.lock
|
||||||
|
!data/
|
||||||
|
!ki/
|
||||||
|
!LICENSES/
|
||||||
|
!migrations/
|
||||||
|
!app.py
|
||||||
|
!run_prod.py
|
146
.drone.yml
146
.drone.yml
@ -4,48 +4,114 @@
|
|||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
type: docker
|
type: docker
|
||||||
name: default
|
name: qa
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
- pull_request
|
||||||
|
branch:
|
||||||
|
- main
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: qa
|
- name: install-lint-test
|
||||||
image: registry.wtf-eg.net/ki-backend-builder:1.0.0
|
image: python:3.8.19-alpine@sha256:3bd7ea88cb637e09d6c7de24c5394657163a85c2be82bfebe0305cf07f8de1ea
|
||||||
commands:
|
env:
|
||||||
- pipenv install --dev
|
PYROOT: '/pyroot'
|
||||||
- pipenv run flake8
|
PYTHONUSERBASE: '/pyroot'
|
||||||
- pipenv run reuse lint
|
commands:
|
||||||
- pipenv run python -m unittest discover ki
|
- 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
|
kind: pipeline
|
||||||
settings:
|
type: docker
|
||||||
registry: registry.wtf-eg.net
|
name: build
|
||||||
repo: registry.wtf-eg.net/ki-backend
|
|
||||||
target: ki-backend
|
|
||||||
auto_tag: true
|
|
||||||
username:
|
|
||||||
from_secret: "docker_username"
|
|
||||||
password:
|
|
||||||
from_secret: "docker_password"
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
branch:
|
|
||||||
- main
|
|
||||||
|
|
||||||
- name: docker-publish-tag
|
trigger:
|
||||||
image: plugins/docker
|
event:
|
||||||
settings:
|
- push
|
||||||
registry: registry.wtf-eg.net
|
branch:
|
||||||
repo: registry.wtf-eg.net/ki-backend
|
- main
|
||||||
target: ki-backend
|
|
||||||
auto_tag: true
|
|
||||||
username:
|
|
||||||
from_secret: "docker_username"
|
|
||||||
password:
|
|
||||||
from_secret: "docker_password"
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
- tag
|
|
||||||
|
|
||||||
image_pull_secrets:
|
depends_on:
|
||||||
- dockerconfig
|
- qa
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: docker-publish
|
||||||
|
image: plugins/docker:20.18.4@sha256:a8d3d86853c721492213264815f1d00d3ed13f42f5c1855a02f47fa4d5f1e042
|
||||||
|
settings:
|
||||||
|
registry: git.wtf-eg.de
|
||||||
|
repo: git.wtf-eg.de/kompetenzinventar/backend
|
||||||
|
target: ki-backend
|
||||||
|
auto_tag: true
|
||||||
|
username:
|
||||||
|
from_secret: "docker_username"
|
||||||
|
password:
|
||||||
|
from_secret: "docker_password"
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: deploy
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
branch:
|
||||||
|
- main
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- build
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: deploy-dev
|
||||||
|
image: appleboy/drone-ssh:1.7.5@sha256:995677e073454912f26d4c0fdd2f9df2e1f5a30d6603d3f2ece667311b6babb3
|
||||||
|
settings:
|
||||||
|
host:
|
||||||
|
- dev01.wtf-eg.net
|
||||||
|
username: drone_deployment
|
||||||
|
key:
|
||||||
|
from_secret: "dev01_deployment_key"
|
||||||
|
command_timeout: 2m
|
||||||
|
script:
|
||||||
|
- echo "Executing forced command..."
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: tag-release
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- tag
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: install-lint-test
|
||||||
|
image: python:3.8.19-alpine@sha256:3bd7ea88cb637e09d6c7de24c5394657163a85c2be82bfebe0305cf07f8de1ea
|
||||||
|
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:20.18.4@sha256:a8d3d86853c721492213264815f1d00d3ed13f42f5c1855a02f47fa4d5f1e042
|
||||||
|
settings:
|
||||||
|
registry: git.wtf-eg.de
|
||||||
|
repo: git.wtf-eg.de/kompetenzinventar/backend
|
||||||
|
target: ki-backend
|
||||||
|
auto_tag: true
|
||||||
|
username:
|
||||||
|
from_secret: "docker_username"
|
||||||
|
password:
|
||||||
|
from_secret: "docker_password"
|
||||||
|
1
.python-version
Normal file
1
.python-version
Normal file
@ -0,0 +1 @@
|
|||||||
|
3.8.19
|
@ -10,3 +10,7 @@ License: MIT
|
|||||||
Files: Pipfile.lock migrations/*
|
Files: Pipfile.lock migrations/*
|
||||||
Copyright: WTF Kooperative eG <https://wtf-eg.de/>
|
Copyright: WTF Kooperative eG <https://wtf-eg.de/>
|
||||||
License: AGPL-3.0-or-later
|
License: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
Files: renovate.json .python-version
|
||||||
|
Copyright: WTF Kooperative eG <https://wtf-eg.de/>
|
||||||
|
License: AGPL-3.0-or-later
|
||||||
|
17
Dockerfile
17
Dockerfile
@ -2,7 +2,17 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
FROM registry.wtf-eg.net/ki-backend-builder:1.0.1 as builder
|
FROM python:3.8.19-alpine@sha256:3bd7ea88cb637e09d6c7de24c5394657163a85c2be82bfebe0305cf07f8de1ea AS builder
|
||||||
|
|
||||||
|
ENV PYROOT=/pyroot
|
||||||
|
ENV PYTHONUSERBASE=$PYROOT
|
||||||
|
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
gcc \
|
||||||
|
g++ \
|
||||||
|
musl-dev \
|
||||||
|
python3-dev && \
|
||||||
|
pip3 install pipenv
|
||||||
|
|
||||||
COPY Pipfile* ./
|
COPY Pipfile* ./
|
||||||
|
|
||||||
@ -10,7 +20,10 @@ RUN PIP_USER=1 PIP_IGNORE_INSTALLED=1 pipenv install --system --deploy --ignore-
|
|||||||
RUN pip3 uninstall --yes pipenv
|
RUN pip3 uninstall --yes pipenv
|
||||||
|
|
||||||
|
|
||||||
FROM registry.wtf-eg.net/ki-backend-base:1.0.1 as ki-backend
|
FROM python:3.8.19-alpine@sha256:3bd7ea88cb637e09d6c7de24c5394657163a85c2be82bfebe0305cf07f8de1ea AS ki-backend
|
||||||
|
|
||||||
|
ENV PYROOT=/pyroot
|
||||||
|
ENV PYTHONUSERBASE=$PYROOT
|
||||||
|
|
||||||
# Install six explicitly. Otherwise Python complains about it missing.
|
# Install six explicitly. Otherwise Python complains about it missing.
|
||||||
RUN pip3 install six
|
RUN pip3 install six
|
||||||
|
29
Pipfile
29
Pipfile
@ -8,22 +8,23 @@ verify_ssl = true
|
|||||||
name = "pypi"
|
name = "pypi"
|
||||||
|
|
||||||
[packages]
|
[packages]
|
||||||
flask = "~=2.0.1"
|
flask = "==2.0.3"
|
||||||
python-dotenv = "~=0.17.1"
|
python-dotenv = "==0.17.1"
|
||||||
flask-migrate = "~=3.0.1"
|
flask-migrate = "==3.0.1"
|
||||||
flask-sqlalchemy = "~=2.5.1"
|
flask-sqlalchemy = "==2.5.1"
|
||||||
sqlalchemy = "~=1.4.18"
|
sqlalchemy = "==1.4.53"
|
||||||
waitress = "~=2.0.0"
|
waitress = "==2.1.2"
|
||||||
pyyaml = "~=6.0.1"
|
pyyaml = "==6.0.2"
|
||||||
flask-cors = "~=3.0.10"
|
flask-cors = "==3.0.10"
|
||||||
ldap3 = "~=2.9"
|
ldap3 = "==2.9.1"
|
||||||
pymysql = "~=1.0.2"
|
pymysql = "==1.0.3"
|
||||||
|
werkzeug = "==2.3.8"
|
||||||
|
|
||||||
[dev-packages]
|
[dev-packages]
|
||||||
flake8 = "~=3.9.2"
|
flake8 = "==3.9.2"
|
||||||
yapf = "~=0.31.0"
|
yapf = "==0.31.0"
|
||||||
pre-commit = "~=2.13.0"
|
pre-commit = "==2.13.0"
|
||||||
reuse = "~=0.13.0"
|
reuse = "==0.14.0"
|
||||||
|
|
||||||
[requires]
|
[requires]
|
||||||
python_version = "3.8"
|
python_version = "3.8"
|
||||||
|
965
Pipfile.lock
generated
965
Pipfile.lock
generated
File diff suppressed because it is too large
Load Diff
19
README.md
19
README.md
@ -222,25 +222,6 @@ docker-compose up
|
|||||||
|
|
||||||
Dann http://localhost:13337 aufrufen.
|
Dann http://localhost:13337 aufrufen.
|
||||||
|
|
||||||
### Workaround, falls der Zugriff auf registry.wtf-eg.net nicht möglich ist
|
|
||||||
|
|
||||||
Voraussetzung:
|
|
||||||
|
|
||||||
[ki-backend-docker](https://git.wtf-eg.de/kompetenzinventar/ki-backend-docker) muss parallel zum `ki-backend` ausgecheckt sein.
|
|
||||||
|
|
||||||
```
|
|
||||||
cd ki-backend-docker
|
|
||||||
docker build . --target base -t ki-backend-base
|
|
||||||
docker build . --target builder -t ki-backend-builder
|
|
||||||
```
|
|
||||||
|
|
||||||
Ändern der 2 Einträge im `Dockerfile` des `ki-backend`:
|
|
||||||
|
|
||||||
- registry.wtf-eg.net/ki-backend-builder:1.0.0 -> ki-backend-builder
|
|
||||||
- registry.wtf-eg.net/ki-backend-base:1.0.0 -> ki-backend-base
|
|
||||||
|
|
||||||
Danach sollte `docker-compose up` funktionieren.
|
|
||||||
|
|
||||||
## Lizenzen
|
## Lizenzen
|
||||||
|
|
||||||
Dieses Projekt erfüllt die [REUSE](https://reuse.software/) Spezifikation.
|
Dieses Projekt erfüllt die [REUSE](https://reuse.software/) Spezifikation.
|
||||||
|
5
data/imgs/flags/ca.svg
Normal file
5
data/imgs/flags/ca.svg
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="810" height="540">
|
||||||
|
<rect width="810" height="540" fill="#FCDD09"/>
|
||||||
|
<path stroke="#DA121A" stroke-width="60" d="M0,90H810m0,120H0m0,120H810m0,120H0"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 242 B |
18
renovate.json
Normal file
18
renovate.json
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
|
"extends": [
|
||||||
|
"config:best-practices",
|
||||||
|
":disableDependencyDashboard",
|
||||||
|
":maintainLockFilesMonthly",
|
||||||
|
":pinVersions",
|
||||||
|
":separateMultipleMajorReleases"
|
||||||
|
],
|
||||||
|
"packageRules": [
|
||||||
|
{
|
||||||
|
"matchDepNames": ["python"],
|
||||||
|
"groupName": "Python",
|
||||||
|
"separateMinorPatch": true,
|
||||||
|
"separateMultipleMinor": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Reference in New Issue
Block a user