Compare commits

...

6 Commits

6 changed files with 51 additions and 29 deletions

View File

@ -2,18 +2,6 @@
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
- name: register repository_directory_register
stat:
path: "{{repository_directory}}"
register: repository_directory_register
- name: checkout repository
ansible.builtin.shell: git checkout .
become: true
args:
chdir: "{{repository_directory}}"
when: repository_directory_register.stat.exists
- name: "backup docker-compose.yml if it exists"
command: >
mv "{{ docker_compose_file_path }}" "{{ docker_compose_backup_path }}"
@ -21,6 +9,18 @@
removes: "{{ docker_compose_file_path }}"
become: true
- name: register directory
stat:
path: "{{docker_compose_instance_directory}}"
register: docker_compose_instance_directory_register
- name: checkout repository
ansible.builtin.shell: git checkout .
become: true
args:
chdir: "{{docker_compose_instance_directory}}"
when: docker_compose_instance_directory_register.stat.exists
- name: pull docker repository
git:
repo: "https://github.com/opf/openproject-deploy"

View File

@ -27,7 +27,8 @@ x-op-app: &app
# set to true to enable the email receiving feature. See ./docker/cron for more options
IMAP_ENABLED: "${IMAP_ENABLED:-false}"
volumes:
- "${OPDATA:-opdata}:/var/openproject/assets"
- "${OPDATA}:/var/openproject/assets"
- "${PGDATA}:/var/openproject/pgdata"
services:
db:
@ -35,9 +36,9 @@ services:
<<: *restart_policy
stop_grace_period: "3s"
volumes:
- "${PGDATA:-pgdata}:/var/lib/postgresql/data"
- "${PGDATA}:/var/lib/postgresql/data"
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-p4ssw0rd}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: openproject
networks:
- backend
@ -60,7 +61,10 @@ services:
- web
networks:
- frontend
volumes:
- "${OPDATA}:/var/openproject/assets"
- "${PGDATA}:/var/openproject/pgdata"
web:
<<: *app
command: "./docker/prod/web"

View File

@ -17,6 +17,5 @@ DATABASE_URL="postgres://postgres:{{ openproject_database_password }}@db/openpro
RAILS_MIN_THREADS=4
RAILS_MAX_THREADS=16
# The following volumes are default
PGDATA="pgdata"
OPDATA="opdata"

View File

@ -64,7 +64,8 @@ for filtered_failed_docker_compose_repository in filtered_failed_docker_compose_
if compose_file_path:
print("Restarting unhealthy container in:", compose_file_path)
print_bash(f'cd {os.path.dirname(compose_file_path)} && docker-compose restart')
# Propably the cd is not necessary. But in rare cases it could be. To lazzy to test it now.
print_bash(f'cd {os.path.dirname(compose_file_path)} && docker-compose -p "{filtered_failed_docker_compose_repository}" restart')
else:
print("Error: Docker Compose file not found for:", filtered_failed_docker_compose_repository)
errors += 1

View File

@ -1,20 +1,30 @@
#!/bin/sh
docker_ps_grep_unhealthy="$(docker ps --filter health=unhealthy --format '{{.Names}}')"
docker_ps_grep_exited="$(docker ps --filter status=exited --format '{{.Names}}')"
docker_ps_grep_exited="$(docker ps --filter status=exited --format '{{.ID}}')"
exitcode=0
if [ ! -z "$docker_ps_grep_unhealthy" ]
then
if [ -n "$docker_ps_grep_unhealthy" ]; then
echo "Some docker containers are unhealthy: $docker_ps_grep_unhealthy"
exitcode=1
fi
if [ ! -z "$docker_ps_grep_exited" ]
then
echo "Some docker containers exited: $docker_ps_grep_exited"
exitcode=2
if [ -n "$docker_ps_grep_exited" ]; then
for container_id in $docker_ps_grep_exited
do
container_exit_code="$(docker inspect "$container_id" --format='{{.State.ExitCode}}')"
container_name="$(docker inspect "$container_id" --format='{{.Name}}')"
container_name="${container_name#/}" # Entfernt das führende '/'
if [ "$container_exit_code" -ne "0" ]; then
echo "Container $container_name exited with code $container_exit_code"
exitcode=2
fi
done
fi
if [ "$exitcode" -ne "0" ]
then
if [ "$exitcode" -ne "0" ]; then
exit $exitcode
fi
echo "All docker containers are healthy."
exit
exit

View File

@ -10,7 +10,7 @@ anonymous_volumes=$(docker volume ls --format "{{.Name}}" | grep -E '^[a-f0-9]{6
if [ -z "$anonymous_volumes" ]; then
echo "No anonymous volumes found."
exit $status
exit
fi
echo "Anonymous volumes found:"
@ -41,4 +41,12 @@ for volume in $anonymous_volumes; do
done
done
# Additional warning for dangling volumes
dangling_volumes=$(docker volume ls -f dangling=true --format "{{.Name}}")
if [ -n "$dangling_volumes" ]; then
status=2
echo "The following dangling volumes were found:"
echo "$dangling_volumes"
fi
exit $status