Update deployment

This commit is contained in:
Keannu Bernasol 2024-10-17 17:48:32 +08:00
parent 2770ac035d
commit aa9d67fdba
5 changed files with 59 additions and 40 deletions

View file

@ -1,33 +0,0 @@
# .woodpecker.yml
steps:
- name: build
image: docker
when:
- branch: master
event: push
commands:
- docker build --platform linux/arm64 --no-cache -t "$IMAGE" .
- echo "$REGISTRY_PASSWORD" | docker login "$REGISTRY" --password-stdin -u "$REGISTRY_USERNAME"
- docker push "$IMAGE"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
secrets: [REGISTRY, REGISTRY_USERNAME, REGISTRY_PASSWORD, IMAGE]
- name: deploy
image: docker
when:
- branch: master
event: push
commands:
- mkdir -p /root/.ssh/
- echo "$SSH_KEY" | tr -d '\r' > /root/.ssh/id_rsa
- chmod 600 /root/.ssh/id_rsa
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > /root/.ssh/config
- ssh "$REMOTE_HOST" "
cd $PROJECT_DIRECTORY;
docker-compose -f docker-compose.demo.yml down;
docker image rm "$IMAGE" || true;
docker volume rm "$VOLUME" || true;
docker pull "$IMAGE";
docker compose -f docker-compose.demo.yml up -d;
docker image prune -af;"
secrets: [SSH_KEY, REMOTE_HOST, PROJECT_DIRECTORY, IMAGE, VOLUME]

22
.woodpecker/.build.yml Normal file
View file

@ -0,0 +1,22 @@
labels:
platform: linux/arm64
steps:
- name: build
image: docker
when:
- branch: master
event: push
commands:
- docker build -t "$REGISTRY_IMAGE_TAG" .
- echo "$FORGEJO_REGISTRY_PASSWORD" | docker login "$FORGEJO_REGISTRY_URL" --password-stdin -u "$FORGEJO_REGISTRY_USERNAME"
- docker push "$REGISTRY_IMAGE_TAG"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
secrets:
[
FORGEJO_REGISTRY_URL,
FORGEJO_REGISTRY_USERNAME,
FORGEJO_REGISTRY_PASSWORD,
REGISTRY_IMAGE_TAG,
]

30
.woodpecker/.deploy.yml Normal file
View file

@ -0,0 +1,30 @@
steps:
- name: deploy
image: docker
when:
- branch: master
event: push
commands:
- mkdir -p /root/.ssh/
- echo "$WOODPECKER_SSH_KEY" | tr -d '\r' > /root/.ssh/id_rsa
- chmod 600 /root/.ssh/id_rsa
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > /root/.ssh/config
- ssh "$SSH_HOST" '
cd "$PROJECT_DIRECTORY";
docker-compose down;
docker image rm "$REGISTRY_IMAGE_TAG" || true;
docker volume rm "$DOCKER_DB_VOLUME" || true;
docker pull "$REGISTRY_IMAGE_TAG";
docker-compose up -d;
docker image prune -af;'
secrets:
[
SSH_HOST,
PROJECT_DIRECTORY,
WOODPECKER_SSH_KEY,
REGISTRY_IMAGE_TAG,
DOCKER_DB_VOLUME,
]
depends_on:
- build

View file

@ -1,6 +1,6 @@
## DRF-Template ## DRF-Template
![Build Status](https://woodpecker.06222001.xyz/api/badges/1/status.svg) ![Build Status](https://woodpecker.06222001.xyz/api/badges/2/status.svg)
![Demo Page Status](https://stats.06222001.xyz/api/badge/119/status) ![Demo Page Status](https://stats.06222001.xyz/api/badge/119/status)
This is a Django template that I personally use for my projects. This covers the following This is a Django template that I personally use for my projects. This covers the following
@ -27,7 +27,7 @@ When using `docker-compose.dev.yml`, the entire project directory is mounted ont
### Deployment ### Deployment
A sample `docker-compose.demo.yml` is provided which I use in hosting the demo. DEBUG should be set to False when deploying as to not expose the URLs fro Celery Flower and the Django Silk Profiler. The local Inbucket container is not present so make sure to specify an external SMTP server to process emails properly. A sample `docker-compose.yml` is provided which I use in hosting the demo. DEBUG should be set to False when deploying as to not expose the URLs fro Celery Flower and the Django Silk Profiler. The local Inbucket container is not present so make sure to specify an external SMTP server to process emails properly.
### URLs ### URLs

View file

@ -2,7 +2,7 @@ services:
# Django Backend # Django Backend
django: django:
env_file: .env env_file: .env
image: keannu125/drf-template:latest image: git.06222001.xyz/keannu125/drf_template:latest
ports: ports:
- "${BACKEND_PORT}:8000" - "${BACKEND_PORT}:8000"
environment: environment:
@ -17,7 +17,7 @@ services:
env_file: .env env_file: .env
environment: environment:
- RUN_TYPE=worker - RUN_TYPE=worker
image: keannu125/drf-template:latest image: git.06222001.xyz/keannu125/drf_template:latest
depends_on: depends_on:
- django - django
- postgres - postgres
@ -31,7 +31,7 @@ services:
env_file: .env env_file: .env
environment: environment:
- RUN_TYPE=beat - RUN_TYPE=beat
image: keannu125/drf-template:latest image: git.06222001.xyz/keannu125/drf_template:latest
depends_on: depends_on:
- celery - celery
- django - django
@ -48,7 +48,7 @@ services:
- POSTGRES_USER=${DB_USERNAME} - POSTGRES_USER=${DB_USERNAME}
- POSTGRES_PASSWORD=${DB_PASSWORD} - POSTGRES_PASSWORD=${DB_PASSWORD}
volumes: volumes:
- db-data:/var/lib/postgresql/data - db_data:/var/lib/postgresql/data
command: postgres -c max_connections=200 command: postgres -c max_connections=200
# DB Bouncer # DB Bouncer
@ -77,4 +77,4 @@ services:
command: listen --forward-to django:8000/api/v1/stripe/webhook/ command: listen --forward-to django:8000/api/v1/stripe/webhook/
volumes: volumes:
db-data: db_data: