From bb1bf12de330090bed2d9a4a71852fe600da541d Mon Sep 17 00:00:00 2001 From: adb-sh Date: Sun, 8 Jan 2023 21:00:02 +0100 Subject: [PATCH] add deployment --- .drone.yml | 39 +++++++++++++++++++++++++++++++++++++++ Dockerfile | 10 ++++++++++ docker-compose.prod.yml | 20 ++++++++++++++++++++ requirements.txt | 2 ++ 4 files changed, 71 insertions(+) create mode 100644 .drone.yml create mode 100644 Dockerfile create mode 100644 docker-compose.prod.yml create mode 100644 requirements.txt diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..b770e26 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,39 @@ +--- +kind: pipeline +type: docker +name: build + +steps: + - name: docker + image: plugins/docker + settings: + registry: docker.cybre.town + repo: docker.cybre.town/adb/webprog-homework + tags: "latest" + username: + from_secret: docker_username + password: + from_secret: docker_password + +--- +kind: pipeline +type: docker +name: deploy + +depends_on: + - build + +steps: + - name: pull and deploy + image: appleboy/drone-ssh:linux-amd64 + settings: + host: + from_secret: ssh_host + username: + from_secret: ssh_user_name + key: + from_secret: ssh_private_key + script: | + cd /media/docker/webprog-homework + docker compose -f docker-compose.prod.yml -p webprog-homework pull -q + docker compose -f docker-compose.prod.yml -p webprog-homework up -d diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e026cc4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM python:3-alpine + +COPY ./ /usr/src/app +WORKDIR /usr/src/app + +RUN pip install -r requirements.txt +RUN python ./manage.py migrate + +EXPOSE 8000 +CMD [ "python", "./manage.py", "runserver", "0.0.0.0:8000" ] diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..0a11f8a --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,20 @@ +version: '3' + +networks: + web: + external: true + +services: + frontend: + image: docker.cybre.town/adb/webprog-homework + labels: + - "traefik.enable=true" + - "traefik.http.routers.webprog-homework.rule=Host(`webprog-homework.deploy.cat`)" + - "traefik.http.routers.webprog-homework.entrypoints=https" + - "traefik.http.services.webprog-homework.loadbalancer.server.port=8000" + - "traefik.http.routers.webprog-homework.tls.certresolver=mytlschallenge" + - "traefik.docker.network=web" + volumes: + - ./db.sqlite:/usr/src/app/db.sqlite + networks: + - web diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..c9736c8 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +Django==4.1.3 +requests==2.28.1 \ No newline at end of file