From 9d04b173bd3d3438f27ef78aa044f0800dc6e7b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Suzanne?= Date: Mon, 22 May 2023 13:56:39 +0000 Subject: [PATCH] Docker --- .gitlab-ci.yml | 20 ++++++++++++++++++++ Dockerfile | 16 ++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 Dockerfile diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c4732e2..bfec472 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,7 @@ stages: - build - test + - docker before_script: - export CACHE_PATH="/venvs/${CI_PROJECT_NAME}/$(date +week-%V-%Y)" @@ -41,3 +42,22 @@ tests: - if [ "$CI_COMMIT_REF_NAME" = 'develop' ] ; git fetch origin main ; then diff-cover coverage.xml --fail-under=90 && exit 0 ; fi - git fetch origin develop ; diff-cover coverage.xml --fail-under=90 --compare-branch origin/develop - echo "Tests done." + +build_docker_and_publish: + stage: docker + only: + - main + - develop + image: docker:git + tags: + - dind + dependencies: + - tests + services: + - docker:dind + script: + - docker build --pull --no-cache -f Dockerfile -t $CI_REGISTRY/hashbangfr/la_chariotte:latest . + - docker tag $CI_REGISTRY/hashbangfr/la_chariotte:latest $CI_REGISTRY/hashbangfr/la_chariotte:${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA} + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker push $CI_REGISTRY/hashbangfr/la_chariotte:latest + - docker push $CI_REGISTRY/hashbangfr/la_chariotte:${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..6e76e1c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM python:3.9-slim + +WORKDIR /srv/app + +RUN apt update && \ + apt install --no-install-recommends -y libpq-dev build-essential curl gcc sassc libpango-1.0-0 libpangoft2-1.0-0 libjpeg-dev libopenjp2-7-dev libffi-dev libpangoft2-1.0-0 libcairo2 libpangocairo-1.0-0 libgdk-pixbuf2.0-0 shared-mime-info &&\ + rm -rf /var/lib/apt/lists/* + +COPY --chown=www-data:www-data . . + +run python -m pip install --upgrade pip \ + && python -m pip install uwsgi \ + && python -m pip install -r requirements.txt \ + && python -m pip install . + +ENTRYPOINT [ "uwsgi", "-i", "uwsgi.ini" ]