Compare commits

..

No commits in common. "14cf6a953fc46f9cafbd9818214201f6248c58b8" and "d1a77df0e1a8dc89c42cfa3d3d8bd1b1f1ca4ab0" have entirely different histories.

4 changed files with 20 additions and 25 deletions

View File

@ -20,12 +20,13 @@ build:docker:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event' - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
tags: [ docker ] tags: [ docker ]
before_script: before_script:
- echo -e "VERSION=$CI_BUILD_REF_NAME\nCOMMIT=$CI_COMMIT_SHA" > version.env # COMMIT=`git rev-parse HEAD`
- docker buildx inspect - docker buildx inspect
- docker buildx create --use - docker buildx create --use
script: script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- IMAGE=$CI_REGISTRY/$CI_PROJECT_PATH/$CI_BUILD_REF_NAME:$CI_BUILD_REF - IMAGE=$CI_REGISTRY/$CI_PROJECT_PATH/$CI_BUILD_REF_NAME:$CI_BUILD_REF
- docker buildx build --progress=plain --platform linux/amd64,linux/arm64 --build-arg VERSION=$CI_BUILD_REF_NAME --build-arg COMMIT=$CI_COMMIT_SHA --tag $IMAGE --push . - docker buildx build --progress=plain --platform linux/amd64,linux/arm64 --tag $IMAGE --push .
- docker buildx imagetools inspect $IMAGE - docker buildx imagetools inspect $IMAGE
- echo "CS_IMAGE=$IMAGE" > container_scanning.env - echo "CS_IMAGE=$IMAGE" > container_scanning.env
artifacts: artifacts:
@ -265,22 +266,21 @@ deploy:docker:
extends: .deploy extends: .deploy
stage: deploy stage: deploy
before_script: before_script:
- echo -e "VERSION=$CI_BUILD_REF_NAME\nCOMMIT=$CI_COMMIT_SHA" > version.env
- echo "Building docker image for commit $CI_COMMIT_SHA with version $CI_BUILD_REF_NAME" - echo "Building docker image for commit $CI_COMMIT_SHA with version $CI_BUILD_REF_NAME"
script: script:
- echo "========== GitLab-Registry ==========" - echo "GitLab-Registry"
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- IMAGE=$CI_REGISTRY/$CI_PROJECT_PATH/$CI_BUILD_REF_NAME - docker build . --tag $CI_REGISTRY/$CI_PROJECT_PATH/$CI_BUILD_REF_NAME:$CI_BUILD_REF_NAME
- docker build . --build-arg VERSION=$CI_BUILD_REF_NAME --build-arg COMMIT=$CI_COMMIT_SHA --tag $IMAGE:$CI_BUILD_REF_NAME - docker build . --tag $CI_REGISTRY/$CI_PROJECT_PATH/$CI_BUILD_REF_NAME:latest
- docker build . --build-arg VERSION=$CI_BUILD_REF_NAME --build-arg COMMIT=$CI_COMMIT_SHA --tag $IMAGE:latest - docker push $CI_REGISTRY/$CI_PROJECT_PATH/$CI_BUILD_REF_NAME:$CI_BUILD_REF_NAME
- docker push $IMAGE:$CI_BUILD_REF_NAME - docker push $CI_REGISTRY/$CI_PROJECT_PATH/$CI_BUILD_REF_NAME:latest
- docker push $IMAGE:latest - echo "Docker-Hub"
- echo "========== Docker-Hub =========="
- docker login -u $PUBLIC_REGISTRY_USER -p $PUBLIC_REGISTRY_TOKEN - docker login -u $PUBLIC_REGISTRY_USER -p $PUBLIC_REGISTRY_TOKEN
- IMAGE=$PUBLIC_REGISTRY_USER/$CI_PROJECT_NAME - docker build . --tag $PUBLIC_REGISTRY_USER/$CI_PROJECT_NAME:$CI_BUILD_REF_NAME
- docker build . --build-arg VERSION=$CI_BUILD_REF_NAME --build-arg COMMIT=$CI_COMMIT_SHA --tag $IMAGE:$CI_BUILD_REF_NAME - docker build . --tag $PUBLIC_REGISTRY_USER/$CI_PROJECT_NAME:latest
- docker build . --build-arg VERSION=$CI_BUILD_REF_NAME --build-arg COMMIT=$CI_COMMIT_SHA --tag $IMAGE:latest - docker push $PUBLIC_REGISTRY_USER/$CI_PROJECT_NAME:$CI_BUILD_REF_NAME
- docker push $IMAGE:$CI_BUILD_REF_NAME - docker push $PUBLIC_REGISTRY_USER/$CI_PROJECT_NAME:latest
- docker push $IMAGE:latest
deploy:apt: deploy:apt:
# doc: https://git.collinwebdesigns.de/help/user/packages/debian_repository/index.md#install-a-package # doc: https://git.collinwebdesigns.de/help/user/packages/debian_repository/index.md#install-a-package

View File

@ -1,9 +1,5 @@
FROM python:3.11-alpine FROM python:3.11-alpine
ARG VERSION
ARG COMMIT=""
RUN echo -e "VERSION=$VERSION\nCOMMIT=$COMMIT" > /version.env
COPY requirements.txt /tmp/requirements.txt COPY requirements.txt /tmp/requirements.txt
RUN apk update \ RUN apk update \
@ -15,6 +11,7 @@ RUN apk update \
&& apk del build-deps && apk del build-deps
COPY app /app COPY app /app
COPY version.env /version.env
COPY README.md /README.md COPY README.md /README.md
HEALTHCHECK --start-period=30s --interval=10s --timeout=5s --retries=3 CMD curl --insecure --fail https://localhost/-/health || exit 1 HEALTHCHECK --start-period=30s --interval=10s --timeout=5s --retries=3 CMD curl --insecure --fail https://localhost/-/health || exit 1

View File

@ -1,14 +1,13 @@
# Roadmap # Roadmap
I am planning to implement the following features in the future. I'am planning to implement the following features in future.
## HA - High Availability ## HA - High Availability
Support Failover-Mode (secondary ip address) as in official DLS. Support Failover-Mode (secondary ip address) as in official DLS.
**Note**: There is no Load-Balancing / Round-Robin HA Mode supported! If you want to use that, consider to use **Note**: There is no Load-Balancing / Round-Robin HA Mode supported! If you want to use that, consider to use Docker-Swarm with shared/cluster database (e.g. postgres).
Docker-Swarm with shared/cluster database (e.g. postgres).
*See [ha branch](https://git.collinwebdesigns.de/oscar.krause/fastapi-dls/-/tree/ha) for current status.* *See [ha branch](https://git.collinwebdesigns.de/oscar.krause/fastapi-dls/-/tree/ha) for current status.*
@ -22,6 +21,5 @@ Add a user interface to manage origins and leases.
## Config Database ## Config Database
Instead of using environment variables, configuration files and manually create certificates, store configs and Instead of using environment variables, configuration files and manually create certificates, store cofigs and certificates in databse (like origins and leases). Also there sould be provided a startup assistand to prefill required attributes and create instance-certificates.
certificates in database (like origins and leases). Also, there should be provided a startup assistant to prefill This is more user friendly and should improve setup.
required attributes and create instance-certificates. This is more user-friendly and should improve fist setup.

View File

@ -1,8 +1,8 @@
fastapi==0.95.1 fastapi==0.95.1
uvicorn[standard]==0.22.0 uvicorn[standard]==0.21.1
python-jose==3.3.0 python-jose==3.3.0
pycryptodome==3.17 pycryptodome==3.17
python-dateutil==2.8.2 python-dateutil==2.8.2
sqlalchemy==2.0.12 sqlalchemy==2.0.9
markdown==3.4.3 markdown==3.4.3
python-dotenv==1.0.0 python-dotenv==1.0.0