From 1feae802c20388e911aadad31a03d2d4bff3258f Mon Sep 17 00:00:00 2001 From: Patrick Kostjens Date: Sun, 12 Feb 2017 17:30:24 +0100 Subject: [PATCH 1/8] Use local folders in containers created by docker-compose to persist data --- .gitignore | 1 + docker-compose.yml | 15 ++++++--------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 6b366227eb..b51e4c7d5f 100755 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /public/storage /vendor /.idea +/firefly-db-storage Homestead.json Homestead.yaml .env diff --git a/docker-compose.yml b/docker-compose.yml index a7c42b18a0..2fcb6faac8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,25 +9,22 @@ services: - MYSQL_PASSWORD=firefly_db_secret - MYSQL_RANDOM_ROOT_PASSWORD=yes volumes: - - firefly-storage:/var/lib/mysql + - ./firefly-db-storage:/var/lib/mysql firefly-app: image: firefly-iii - build: - context: . + container_name: firefly-iii + build: . environment: - - INIT_DATABASE=yes - FF_DB_HOST=firefly-db - FF_DB_NAME=firefly_db - FF_DB_USER=firefly_db - FF_DB_PASSWORD=firefly_db_secret - FF_APP_KEY=SomeRandomStringOf32CharsExactly - - FF_APP_ENV=development + - FF_APP_ENV=production ports: - "80:80" links: - firefly-db - -volumes: - firefly-storage: - driver: local + volumes: + - ./storage:/var/www/firefly-iii/storage From ff1d1e5b8f6a8f3ac6c1e158927045b795dd7b10 Mon Sep 17 00:00:00 2001 From: Patrick Kostjens Date: Sun, 12 Feb 2017 17:55:56 +0100 Subject: [PATCH 2/8] Revert docker-compose to development version and create separate production file --- docker-compose.prod.yml | 30 ++++++++++++++++++++++++++++++ docker-compose.yml | 15 +++++++++------ 2 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 docker-compose.prod.yml diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000000..2fcb6faac8 --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,30 @@ +version: '2' + +services: + firefly-db: + image: mysql:8 + environment: + - MYSQL_DATABASE=firefly_db + - MYSQL_USER=firefly_db + - MYSQL_PASSWORD=firefly_db_secret + - MYSQL_RANDOM_ROOT_PASSWORD=yes + volumes: + - ./firefly-db-storage:/var/lib/mysql + + firefly-app: + image: firefly-iii + container_name: firefly-iii + build: . + environment: + - FF_DB_HOST=firefly-db + - FF_DB_NAME=firefly_db + - FF_DB_USER=firefly_db + - FF_DB_PASSWORD=firefly_db_secret + - FF_APP_KEY=SomeRandomStringOf32CharsExactly + - FF_APP_ENV=production + ports: + - "80:80" + links: + - firefly-db + volumes: + - ./storage:/var/www/firefly-iii/storage diff --git a/docker-compose.yml b/docker-compose.yml index 2fcb6faac8..a7c42b18a0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,22 +9,25 @@ services: - MYSQL_PASSWORD=firefly_db_secret - MYSQL_RANDOM_ROOT_PASSWORD=yes volumes: - - ./firefly-db-storage:/var/lib/mysql + - firefly-storage:/var/lib/mysql firefly-app: image: firefly-iii - container_name: firefly-iii - build: . + build: + context: . environment: + - INIT_DATABASE=yes - FF_DB_HOST=firefly-db - FF_DB_NAME=firefly_db - FF_DB_USER=firefly_db - FF_DB_PASSWORD=firefly_db_secret - FF_APP_KEY=SomeRandomStringOf32CharsExactly - - FF_APP_ENV=production + - FF_APP_ENV=development ports: - "80:80" links: - firefly-db - volumes: - - ./storage:/var/www/firefly-iii/storage + +volumes: + firefly-storage: + driver: local From bd1672fd7b75f16692a55c2876811f6534de3e51 Mon Sep 17 00:00:00 2001 From: Patrick Kostjens Date: Sun, 12 Feb 2017 18:07:48 +0100 Subject: [PATCH 3/8] Use Docker volume for mysql data storage --- .gitignore | 1 - docker-compose.prod.yml | 5 ++++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index b51e4c7d5f..6b366227eb 100755 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ /public/storage /vendor /.idea -/firefly-db-storage Homestead.json Homestead.yaml .env diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 2fcb6faac8..42944a9023 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -9,7 +9,7 @@ services: - MYSQL_PASSWORD=firefly_db_secret - MYSQL_RANDOM_ROOT_PASSWORD=yes volumes: - - ./firefly-db-storage:/var/lib/mysql + - firefly-db-storage:/var/lib/mysql firefly-app: image: firefly-iii @@ -28,3 +28,6 @@ services: - firefly-db volumes: - ./storage:/var/www/firefly-iii/storage +volumes: + firefly-db-storage: + driver: local From 75e0d19b4e990d5d0fea1fb83265bd8b9d0b4ac0 Mon Sep 17 00:00:00 2001 From: Patrick Kostjens Date: Sun, 12 Feb 2017 19:37:37 +0100 Subject: [PATCH 4/8] Refactored docker-compose files to use base with dev/prod overrides --- docker-compose.override.yml | 14 ++++++++++++++ docker-compose.prod.yml | 24 ------------------------ docker-compose.yml | 5 +---- 3 files changed, 15 insertions(+), 28 deletions(-) create mode 100644 docker-compose.override.yml diff --git a/docker-compose.override.yml b/docker-compose.override.yml new file mode 100644 index 0000000000..6231c2fdb5 --- /dev/null +++ b/docker-compose.override.yml @@ -0,0 +1,14 @@ +version: '2' + +services: + firefly-db: + volumes: + - firefly-dev-storage:/var/lib/mysql + firefly-app: + environment: + - INIT_DATABASE=yes + - FF_APP_ENV=development + +volumes: + firefly-dev-storage: + driver: local diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 42944a9023..69f91764d5 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -1,33 +1,9 @@ version: '2' services: - firefly-db: - image: mysql:8 - environment: - - MYSQL_DATABASE=firefly_db - - MYSQL_USER=firefly_db - - MYSQL_PASSWORD=firefly_db_secret - - MYSQL_RANDOM_ROOT_PASSWORD=yes - volumes: - - firefly-db-storage:/var/lib/mysql - firefly-app: - image: firefly-iii container_name: firefly-iii - build: . environment: - - FF_DB_HOST=firefly-db - - FF_DB_NAME=firefly_db - - FF_DB_USER=firefly_db - - FF_DB_PASSWORD=firefly_db_secret - - FF_APP_KEY=SomeRandomStringOf32CharsExactly - FF_APP_ENV=production - ports: - - "80:80" - links: - - firefly-db volumes: - ./storage:/var/www/firefly-iii/storage -volumes: - firefly-db-storage: - driver: local diff --git a/docker-compose.yml b/docker-compose.yml index a7c42b18a0..92f79e2ea6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,16 +13,13 @@ services: firefly-app: image: firefly-iii - build: - context: . + build: . environment: - - INIT_DATABASE=yes - FF_DB_HOST=firefly-db - FF_DB_NAME=firefly_db - FF_DB_USER=firefly_db - FF_DB_PASSWORD=firefly_db_secret - FF_APP_KEY=SomeRandomStringOf32CharsExactly - - FF_APP_ENV=development ports: - "80:80" links: From e42f8581664fbadb939fedc7e0eea01946e1a63d Mon Sep 17 00:00:00 2001 From: Patrick Kostjens Date: Sun, 12 Feb 2017 20:41:29 +0100 Subject: [PATCH 5/8] Incorporate review comment: Remove unneeded container name setting in docker-compose --- docker-compose.prod.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 69f91764d5..c16d46bf69 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -2,7 +2,6 @@ version: '2' services: firefly-app: - container_name: firefly-iii environment: - FF_APP_ENV=production volumes: From a1d40a57484f5b521e78707ed9d97dc317c0a707 Mon Sep 17 00:00:00 2001 From: Patrick Kostjens Date: Sun, 12 Feb 2017 20:52:26 +0100 Subject: [PATCH 6/8] Mount local code base in development docker-compose --- docker-compose.override.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 6231c2fdb5..a51bc21b02 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -4,6 +4,7 @@ services: firefly-db: volumes: - firefly-dev-storage:/var/lib/mysql + - .:/var/www/firefly-iii firefly-app: environment: - INIT_DATABASE=yes From bc4cf1a367d95412c807b107d474abe2f1fb1d02 Mon Sep 17 00:00:00 2001 From: Patrick Kostjens Date: Sun, 12 Feb 2017 21:04:15 +0100 Subject: [PATCH 7/8] Incorporate comments: Use Docker storage instead of local folder for app storage --- docker-compose.prod.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index c16d46bf69..68fdff69a1 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -5,4 +5,8 @@ services: environment: - FF_APP_ENV=production volumes: - - ./storage:/var/www/firefly-iii/storage + - firefly-app-storage:/var/www/firefly-iii/storage + +volumes: + firefly-app-storage: + driver: local From e9a67b1c82dc390dc746b23402d8fd7a18fa8735 Mon Sep 17 00:00:00 2001 From: Patrick Kostjens Date: Sun, 12 Feb 2017 21:38:58 +0100 Subject: [PATCH 8/8] Bugfix: Mount app in app container instead of db container --- docker-compose.override.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker-compose.override.yml b/docker-compose.override.yml index a51bc21b02..c8ce8bea02 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -4,8 +4,9 @@ services: firefly-db: volumes: - firefly-dev-storage:/var/lib/mysql - - .:/var/www/firefly-iii firefly-app: + volumes: + - .:/var/www/firefly-iii environment: - INIT_DATABASE=yes - FF_APP_ENV=development