wip: ci/cd restart container
Some checks failed
Deploy Production Server / if_merged (push) Failing after 5m1s

This commit is contained in:
Thibaut Valentin 2024-12-30 18:27:18 +01:00
parent 122ac2b94f
commit 734fc4634c
3 changed files with 99 additions and 4 deletions

View File

@ -50,5 +50,33 @@ jobs:
username: ${{ secrets.SSH_USER }}
port: ${{ secrets.SSH_PORT }}
key: ${{ secrets.SSH_KEY }}
source: "target/*-runner,src/main/resources/cacerts"
target: ${{ secrets.TARGET_DIR }} # Need to create it first on the VPS
source: "target/*-runner,src/main/resources/cacerts,src/main/docker/Dockerfile.native,docker-compose.yml"
target: ${{ secrets.TARGET_DIR }} # Need to create it first on the VPS
- name: Re-start ffsaf container
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.SSH_USER }}
port: ${{ secrets.SSH_PORT }}
key: ${{ secrets.SSH_KEY }}
script: |
cd ${{ secrets.TARGET_DIR }}
docker stop ffsaf
docker rm ffsaf
docker compose up --build -d ffsaf
- name: Check ffsaf container
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.SSH_USER }}
port: ${{ secrets.SSH_PORT }}
key: ${{ secrets.SSH_KEY }}
script: |
if docker ps | grep ffsaf; then
echo 'Container is running'
else
echo 'Container is not running'
exit 1 # This mark the pipeline as failed
fi

67
docker-compose.yml Normal file
View File

@ -0,0 +1,67 @@
version: "2.3"
services:
ffsaf:
container_name: ffsaf
hostname: ffsaf
restart: always
build:
context: .
dockerfile: src/main/docker/Dockerfile.native
volumes:
- ${PWD}/ffsaf.properties:/work/config/application.properties
- ${PWD}/ffsaf_cle_prive.jks:/work/cle_prive.jks
- ${PWD}/ffsaf-media:/work/media
depends_on:
- ffsaf-db
networks:
- intra
- nginx
ffsaf-db:
image: postgres
hostname: ffsaf-db
container_name: ffsaf-db
user: postgres
restart: always
networks:
- pgadmin
- intra
healthcheck:
test: [ "CMD-SHELL", "pg_isready" ]
interval: 5s
timeout: 3s
retries: 10
volumes:
- ${PWD}/postgres-data:/var/lib/postgresql/data
env_file: prod.env
# ftpd:
# build:
# context: ./pure_ftpd
# dockerfile: Dockerfile2
# container_name: ftpd
# ports:
# - "10042:21"
# - "30000-30009:30000-30009"
# volumes:
# - /data/git_data:/home/data/
# - ${PWD}/pure_ftpd/passwd:/etc/pure-ftpd/passwd
# - ${PWD}/pure_ftpd/ssl:/etc/ssl/private/:ro
# environment:
# PUBLICHOST: 0.0.0.0
# FTP_USER_NAME: test
# FTP_USER_PASS: test
# FTP_USER_HOME: /home/data
# ADDED_FLAGS: --tls=1
# restart: no
networks:
intra:
driver: bridge
pgadmin:
name: pgadmin
external: true
nginx:
name: ${NETWORK_NAME:-gateway}
external: true

View File

@ -19,8 +19,8 @@ WORKDIR /work/
RUN chown 1001 /work \
&& chmod "g+rwX" /work \
&& chown 1001:root /work
COPY --chown=1001:root ffsaf/target/*-runner /work/application
COPY --chown=1001:root ffsaf/src/main/resources/cacerts /work/cacerts
COPY --chown=1001:root target/*-runner /work/application
COPY --chown=1001:root src/main/resources/cacerts /work/cacerts
RUN mkdir /work/media && chown -R 1001:root /work/media
EXPOSE 8080