From a000d6454f23c0681c8abb1913479e528a463cb5 Mon Sep 17 00:00:00 2001 From: Iisakki Jaakkola Date: Thu, 22 Aug 2024 15:46:40 +0300 Subject: [PATCH 1/3] Fix non-functional development docker-compose file. --- .env.dev.docker | 2 ++ dev.docker-compose.yml | 44 +++++++++++++++++++----------------------- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/.env.dev.docker b/.env.dev.docker index 7b9e2000c..983063bbd 100644 --- a/.env.dev.docker +++ b/.env.dev.docker @@ -1,6 +1,8 @@ # -------------------------------------------- # REQUIRED: DB SETUP # -------------------------------------------- +# https://mariadb.com/kb/en/mariadb-server-docker-official-image-environment-variables/ + MYSQL_DATABASE=snipeit MYSQL_USER=snipeit MYSQL_PASSWORD=changeme1234 diff --git a/dev.docker-compose.yml b/dev.docker-compose.yml index 15272ce5c..84f8dea4b 100644 --- a/dev.docker-compose.yml +++ b/dev.docker-compose.yml @@ -1,3 +1,5 @@ +# Compose file to spin up a local Snipe-IT for development. + version: '3' services: @@ -7,44 +9,38 @@ services: dockerfile: Dockerfile.alpine container_name: snipeit ports: - - "8000:80" - volumes: - - ./storage/logs:/var/www/html/storage/logs + - "8000:80" depends_on: - - mariadb - - redis + redis: + mariadb: + condition: service_healthy + restart: true env_file: - - .env.docker - networks: - - snipeit-backend + - .env.dev.docker mariadb: - image: mariadb:10.6.4-focal + image: mariadb:11.5.2 volumes: - - db:/var/lib/mysql + - db:/var/lib/mysql env_file: - - .env.docker - networks: - - snipeit-backend + - .env.dev.docker ports: - "3306:3306" + healthcheck: + # https://mariadb.com/kb/en/using-healthcheck-sh/#compose-file-example + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] + interval: 5s + timeout: 2s + retries: 5 redis: - image: redis:6.2.5-buster - networks: - - snipeit-backend + image: redis:7.4.0 mailhog: image: mailhog/mailhog:v1.0.1 ports: - # - 1025:1025 - - "8025:8025" - networks: - - snipeit-backend - + # - 1025:1025 + - "8025:8025" volumes: db: {} - -networks: - snipeit-backend: {} From f12f9a816f6776395788cec8e7b0bfddad3de26c Mon Sep 17 00:00:00 2001 From: Iisakki Jaakkola Date: Thu, 22 Aug 2024 15:47:12 +0300 Subject: [PATCH 2/3] Update the official docker-compose file too while at it. --- docker-compose.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index c7c1983a4..d830a9436 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,11 +1,13 @@ +# Compose file for production. + volumes: db_data: storage: services: app: - image: snipe/snipe-it:${APP_VERSION:-v6.4.1} - restart: always + image: snipe/snipe-it:${APP_VERSION:-v7.0.11} + restart: unless-stopped volumes: - storage:/var/lib/snipeit ports: @@ -18,8 +20,8 @@ services: - .env db: - image: mariadb:10.6.4-focal - restart: always + image: mariadb:11.5.2 + restart: unless-stopped volumes: - db_data:/var/lib/mysql environment: @@ -28,7 +30,8 @@ services: MYSQL_PASSWORD: ${DB_PASSWORD} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} healthcheck: - test: mysqladmin ping -h 127.0.0.1 -u $$MYSQL_USER --password=$$MYSQL_PASSWORD + # https://mariadb.com/kb/en/using-healthcheck-sh/#compose-file-example + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 5s timeout: 1s retries: 5 From aef0ac68c36a7b2be1dece41f515df2bdae40ca4 Mon Sep 17 00:00:00 2001 From: Iisakki Jaakkola Date: Thu, 22 Aug 2024 16:10:00 +0300 Subject: [PATCH 3/3] Need to use the long format for redis too in docker-compose file. --- dev.docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dev.docker-compose.yml b/dev.docker-compose.yml index 84f8dea4b..6cf4a1e2f 100644 --- a/dev.docker-compose.yml +++ b/dev.docker-compose.yml @@ -12,6 +12,8 @@ services: - "8000:80" depends_on: redis: + # The default needs to be stated. + condition: service_started mariadb: condition: service_healthy restart: true