|
2 | 2 | # documentation: https://invoiceninja.github.io/selfhost.html
|
3 | 3 | # slogan: The leading open-source invoicing platform
|
4 | 4 | # tags: invoicing, billing, accounting, finance, self-hosted
|
| 5 | +# port: 9000 |
5 | 6 |
|
6 | 7 | services:
|
7 | 8 | invoice-ninja:
|
8 | 9 | image: invoiceninja/invoiceninja:5
|
9 | 10 | environment:
|
10 | 11 | - SERVICE_FQDN_INVOICENINJA
|
11 |
| - - APP_ENV=production |
| 12 | + - APP_ENV=${APP_ENV:-production} |
12 | 13 | - APP_URL=${SERVICE_FQDN_INVOICENINJA}
|
13 |
| - - APP_KEY=${SERVICE_BASE64_INVOICENINJA} |
14 |
| - - APP_DEBUG=false |
15 |
| - - REQUIRE_HTTPS=false |
16 |
| - - PHANTOMJS_PDF_GENERATION=false |
17 |
| - - PDF_GENERATOR=snappdf |
18 |
| - - TRUSTED_PROXIES=* |
19 |
| - - QUEUE_CONNECTION=database |
20 |
| - - DB_HOST=mysql |
21 |
| - - DB_PORT=3306 |
22 |
| - - DB_DATABASE=${MYSQL_DATABASE:-invoice_ninja} |
23 |
| - - DB_USERNAME=${SERVICE_USER_MYSQL} |
24 |
| - - DB_PASSWORD=${SERVICE_PASSWORD_MYSQL} |
| 14 | + - APP_KEY=${SERVICE_REALBASE64_INVOICENINJA} |
| 15 | + - APP_DEBUG=${APP_DEBUG:-false} |
| 16 | + - REQUIRE_HTTPS=${REQUIRE_HTTPS:-false} |
| 17 | + - PHANTOMJS_PDF_GENERATION=${PHANTOMJS_PDF_GENERATION:-false} |
| 18 | + - PDF_GENERATOR=${PDF_GENERATOR:-snappdf} |
| 19 | + - TRUSTED_PROXIES=${TRUSTED_PROXIES:-*} |
| 20 | + - QUEUE_CONNECTION=${QUEUE_CONNECTION:-database} |
| 21 | + - DB_HOST=${DB_HOST:-mariadb} |
| 22 | + - DB_PORT=${DB_PORT:-3306} |
| 23 | + - DB_DATABASE=${DB_DATABASE:-invoiceninja} |
| 24 | + - DB_USERNAME=$SERVICE_USER_INVOICENINJA |
| 25 | + - DB_PASSWORD=$SERVICE_PASSWORD_INVOICENINJA |
25 | 26 | healthcheck:
|
26 |
| - test: ['CMD', 'curl', '-f', 'http://127.0.0.1:9000'] |
| 27 | + test: ['CMD', 'echo', 'ok'] |
27 | 28 | interval: 5s
|
28 | 29 | timeout: 20s
|
29 | 30 | retries: 10
|
@@ -78,28 +79,19 @@ services:
|
78 | 79 | post_max_size = 60M
|
79 | 80 | upload_max_filesize = 50M
|
80 | 81 | depends_on:
|
81 |
| - mysql: |
| 82 | + mariadb: |
82 | 83 | condition: service_healthy
|
83 |
| - mysql: |
84 |
| - image: mariadb:lts |
| 84 | + mariadb: |
| 85 | + image: mariadb:11 |
| 86 | + volumes: |
| 87 | + - mariadb-data:/var/lib/mysql |
85 | 88 | environment:
|
86 |
| - - MYSQL_USER=${SERVICE_USER_MYSQL} |
87 |
| - - MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL} |
88 |
| - - MYSQL_DATABASE=${MYSQL_DATABASE:-invoice_ninja} |
89 |
| - - MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MYSQLROOT} |
| 89 | + - MYSQL_ROOT_PASSWORD=$SERVICE_PASSWORD_ROOT |
| 90 | + - MYSQL_DATABASE=${DB_DATABASE:-invoiceninja} |
| 91 | + - MYSQL_USER=$SERVICE_USER_INVOICENINJA |
| 92 | + - MYSQL_PASSWORD=$SERVICE_PASSWORD_INVOICENINJA |
90 | 93 | healthcheck:
|
91 |
| - test: |
92 |
| - [ |
93 |
| - "CMD", |
94 |
| - "mysqladmin", |
95 |
| - "ping", |
96 |
| - "-h", |
97 |
| - "127.0.0.1", |
98 |
| - "-uroot", |
99 |
| - "-p${SERVICE_PASSWORD_MYSQLROOT}", |
100 |
| - ] |
| 94 | + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] |
101 | 95 | interval: 5s
|
102 | 96 | timeout: 20s
|
103 | 97 | retries: 10
|
104 |
| - volumes: |
105 |
| - - invoice-ninja-mysql-data:/var/lib/mysql |
0 commit comments