Compare commits

...

218 Commits

Author SHA1 Message Date
codedge
e64dd79cfc Merge pull request #187 from codedge/master
No logs for favicon and robots
2020-08-17 07:44:03 +02:00
Holger Lösken
5942c1c362 Merge branch 'master' of github.com:codedge/dockerfiles 2020-08-17 07:42:25 +02:00
Holger Lösken
78b5e59cd5 No log for favicon or robots, making this vhost the default 2020-08-17 07:42:21 +02:00
codedge
d1a8922f7d Merge pull request #185 from codedge/master
Move guidelines to wiki, add sample nginx config
2020-08-16 22:40:23 +02:00
codedge
d87e5948bf Merge branch 'master' into master 2020-08-16 22:40:15 +02:00
Holger Lösken
f4cade9fac Move guidelines to wiki, add sample nginx config 2020-08-16 22:36:24 +02:00
codedge
49f4266418 Merge pull request #179 from HashDot/master
add missing npm/nodejs
2020-08-07 09:13:51 +02:00
Lars Hampe
e7f6ef4c35 add missing npm/nodejs 2020-07-30 10:07:50 +02:00
codedge
1af469cf04 Merge pull request #169 from patski123/patch-1
Small Typo
2020-07-07 11:30:19 +02:00
PatSki123
2d934fd703 Update README.md 2020-07-06 10:03:38 -04:00
PatSki123
a7668325e8 Small Typo
Added missed word "key"
2020-07-06 08:02:47 -04:00
codedge
7aef08794b Merge pull request #165 from fwdIT/fix_caddy_config
Fixes #164 - caddy templating conflicts with php output
2020-06-23 08:22:57 +02:00
Koen Torfs
001c922e45 Fixes #164 - caddy templating conflicts with php output 2020-06-14 18:25:30 +02:00
Holger Lösken
85161446e9 Fix wrong evaluation of env vars 2020-06-08 14:53:16 +02:00
Holger Lösken
14c0fd89eb Extracting version out of tag 2020-06-08 10:01:53 +02:00
Holger Lösken
7b08926961 Remove config files for debian 2020-06-05 10:06:24 +02:00
Holger Lösken
a5e41d3072 Remov builts 2020-06-05 10:06:24 +02:00
Holger Lösken
72e07679eb Add naming to container 2020-06-02 12:33:19 +02:00
Holger Lösken
6d65f5e114 Make folder writeable by web server, update config cache 2020-06-01 23:17:46 +02:00
Holger Lösken
61cef26f80 Fix gid, add warning for v4/v5 2020-05-31 11:09:29 +02:00
codedge
e2d6cbd853 Merge pull request #155 from codedge/fix-wrong-tag
Fix wrong tag
2020-05-29 16:44:01 +02:00
Holger Lösken
21cc3ddf2c Fix wrong tag 2020-05-29 16:43:40 +02:00
Holger Lösken
8245a57117 Support docker secrets via _FILE 2020-05-29 09:23:20 +02:00
Holger Lösken
6b25f47ba1 Match db container to default env values 2020-05-29 09:23:20 +02:00
Holger Lösken
1168dec11b WIP: Implement docker secrets 2020-05-29 09:23:20 +02:00
Samuel Laulhau
f81e0c8f11 add bug report templates 2020-05-28 23:19:57 +02:00
Samuel Laulhau
3e2d5a4f8c Update issue templates 2020-05-28 23:18:33 +02:00
codedge
42e2c2234e Merge pull request #152 from codedge/docker-for-v5
Build docker images for v5
2020-05-28 10:27:32 +02:00
Holger Lösken
4e05229fed Fix missing php exts, do not run migrate and seed 2020-05-28 10:24:50 +02:00
Holger Lösken
c5fb1ab64b Remove db host 2020-05-27 19:12:58 +02:00
Holger Lösken
b190c8e633 Built multi stage image for v5 2020-05-27 19:08:42 +02:00
Holger Lösken
4350619c64 Update tags for v5 2020-05-26 23:04:49 +02:00
Holger Lösken
a38b398d5d Build docker images for v5 2020-05-26 22:55:29 +02:00
codedge
3f8fb906b5 Merge pull request #151 from codedge/fix-arg-scoping
Fix wrong argument scope, pull correct IN version
2020-05-25 21:53:55 +02:00
Holger Lösken
8962e0d0b9 Fix wrong argument scope, pull correct IN version 2020-05-25 21:51:27 +02:00
codedge
fc6923ad40 Merge pull request #148 from codedge/permissions
Add permission instructions
2020-05-23 18:07:40 +02:00
Holger Lösken
3b907d6093 Add permission instructions 2020-05-23 18:07:22 +02:00
codedge
431f11ccd4 Merge pull request #147 from codedge/fix-badge
Fix badge
2020-05-23 10:34:09 +02:00
Holger Lösken
2de45a45ab Fix badge 2020-05-23 10:33:38 +02:00
Holger Lösken
6037ebf2c2 Add some badges fix workflow 2020-05-22 21:33:38 +02:00
Holger Lösken
685801983a Remove phantomjs
PhantomJS does not work for alpine, use cloud version
2020-05-21 22:30:00 +02:00
Holger Lösken
f1a5f6fc7b Remove checks for running entrypoint 2020-05-21 22:30:00 +02:00
Holger Lösken
6cbdec0686 Remove unused env var 2020-05-21 22:30:00 +02:00
Holger Lösken
4c855161f6 Fixed missing maintainer 2020-05-21 22:30:00 +02:00
Holger Lösken
1447268f94 Fix wrong path for entrypoint 2020-05-21 22:30:00 +02:00
Holger Lösken
c0c13705ae PhantomJS works on alpine 2020-05-21 22:30:00 +02:00
Holger Lösken
11869a23a1 Adjusted makefile and workflow to build alpine and debian image 2020-05-21 22:30:00 +02:00
Holger Lösken
39bc2f0d89 Missing merged changes from PR #140 2020-05-21 22:30:00 +02:00
Holger Lösken
0ff6e56ed8 Format readme, shorten the docker command 2020-05-21 22:30:00 +02:00
Holger Lösken
ac5f1bfad5 Base setup for building images via gh actions 2020-05-21 22:30:00 +02:00
Samuel Laulhau
fb064cb05e merge improve-docker-compose 2020-05-18 12:39:18 +02:00
Holger Lösken
a84ec51b3f Restructure docker-compose
* Use alpine images
* Remove separate directory
* Give more hints in docker-compose file
2020-05-18 12:37:35 +02:00
Holger Lösken
e2cafb8b72 Fix text 2020-05-18 12:13:10 +02:00
Holger Lösken
672fc41611 Stackoverflow for getting help 2020-05-18 12:13:10 +02:00
Holger Lösken
eeffc2191c Update instructions, restore log driver 2020-05-12 10:29:07 +02:00
Holger Lösken
8a6622bbbb Explanation how view log files
Fix #137

* Better description how to find log files
* Change default log to file but can be overridden by env var
2020-05-12 10:29:07 +02:00
Holger Lösken
4f3f7ca8fe Make use of .env.example values 2020-05-11 22:43:58 +02:00
Holger Lösken
9e8db1b5bd Update docs for PhantomJS key 2020-05-11 22:43:58 +02:00
Holger Lösken
6bcfd57208 Add link to phantomjs docs 2020-05-11 22:43:58 +02:00
Holger Lösken
db9e0f4309 Update README.md
Fix #71

* Update readme with details how to generate secret keys - application key and phantomjs
* Integrated mounting persistence folder into docker command
2020-05-11 22:43:58 +02:00
Samuel Laulhau
cb91ba9973 4.5.18 2020-04-01 07:14:44 +02:00
Justin Hammond
9060027999 Update README.md 2020-01-06 17:05:09 +01:00
Samuel Laulhau
26c91935fc fix fpm port in exemple
fix #117
2019-12-22 17:51:27 +01:00
Dan Bright
7c5275e766 Update entrypoint.sh
Fix a tiny, insignificant typo in a comment.
2019-12-20 17:26:31 +01:00
Samuel Laulhau
482b30b677 4.5.17 2019-12-03 16:34:22 +01:00
Susanne Gerber
7a45036c72 fix small spelling error 2019-10-29 15:33:19 +01:00
Samuel Laulhau
a963db2b63 4.5.16 2019-10-28 09:31:53 +01:00
Robin Chan
26a71f7f1f if web starts first without app, nginx will quit 2019-10-13 21:01:40 +02:00
Sam
af98f696b9 3.5.15 2019-10-08 10:09:00 +02:00
Martin Honermeyer
696d3b356a Unzip quietly 2019-09-19 09:38:01 +02:00
Samuel Laulhau
0ef00831f6 use stretch image
this is a work around for freetype on buster
2019-07-23 09:46:07 +02:00
Sam
6ba1f11221 4.5.14 2019-07-22 09:46:45 +02:00
Geoffroy Empain
933748e15b Use the correct docker host for mysql
`mysql` is not a valid host. The container name is `db` as specified by the `docker-compose.yml`.
2019-07-05 09:53:23 +02:00
Sam
03180fc65e 4.5.13 2019-05-27 10:35:50 +02:00
Stanislav Shupilkin
e0fcb50ecb Update docker-compose.yml 2019-03-27 14:34:16 +01:00
Stanislav Shupilkin
5c418c474e Change Dockerfile, remove deprecated MAINTAINER section, separate stage on two 2019-03-27 14:34:16 +01:00
Sam
5e59ec10e3 4.5.12 2019-03-26 09:59:53 +01:00
Sam
6b0182e712 4.5.11 2019-03-04 21:04:24 +01:00
Sam
961282a90e 4.5.10 2019-02-21 10:46:35 +01:00
Sam
3a17d81cab 4.5.9 2019-01-23 10:30:24 +01:00
Sam
a3bb9b9681 4.5.8 2019-01-08 12:40:44 +01:00
Sam
766b604971 4.5.7 2018-12-11 15:49:01 +01:00
Andreas Treubert
005e1b9dfe Little bugfix for docker run example within readme 2018-11-14 10:21:20 +01:00
Sam
8d0a39ac71 4.5.6 2018-11-09 11:12:38 +01:00
Sam
6e12296f25 4.5.5 2018-09-28 09:45:22 +02:00
Sam
dbac9305c9 4.5.4 2018-09-10 15:41:27 +02:00
Anojh Thayaparan
3c96683d46 Cron should be run every day not every hour 2018-09-04 10:29:55 +02:00
Sam
279a282d44 4.5.3 2018-08-20 21:00:55 +02:00
Sam
e0332086d4 4.5.2 2018-08-08 23:06:15 +02:00
Sam
63ffa18860 chmod entrypoint in repo 2018-07-29 16:55:52 +02:00
Sam
960c3172e9 remove old env in alpine 2018-07-29 16:52:39 +02:00
Sam
43ff450c2d avoid using copy --from in alpine 2018-07-29 16:49:39 +02:00
Sam
aaa6118286 remove "ln gmp.h" command in alpine 2018-07-29 16:33:11 +02:00
Sam
1ab7bc02d6 4.5.1 2018-07-19 18:48:16 +02:00
Sam
9625d9d9d0 4.5.0 2018-07-09 11:09:25 +02:00
Sam
3bd5324136 chown mounted dir 2018-07-04 22:07:24 +02:00
Sam
e28c8dc07b 4.4.4 2018-06-11 09:12:30 +02:00
Sam
4ab4039887 4.4.3 2018-05-15 20:08:35 +02:00
Sam
650851811a chown backup 2018-05-10 10:03:25 +02:00
Sam
72762dc964 4.4.2 2018-05-03 09:41:03 +02:00
Sam
dc66ca0544 4.4.1 2018-04-30 16:21:31 +02:00
Sam
52992d622b use mysql 5 in docker-compose 2018-04-30 16:21:00 +02:00
Sam
9dcf825f85 chown .env 2018-04-25 14:15:04 +02:00
Sam
350a9fad35 4.4.0 2018-04-25 09:59:49 +02:00
Sam
d8ca192f8e use official Invoice Ninja package 2018-04-24 15:16:33 +02:00
Sam
b6d213682d composer optim 2018-04-24 10:06:13 +02:00
Sam
0d88a6268f fix nginx and mysql version in docker-compose 2018-04-24 10:05:47 +02:00
Sam
c641680309 optim dockerfile 2018-04-23 18:06:28 +02:00
Sam
47116c7d78 add DB_DATABASE in docker-compose exemple 2018-04-23 18:06:19 +02:00
Sam
41544ec1e0 4.3.1 2018-04-09 11:53:45 +02:00
Sam
f3b5a62d36 4.3.0 2018-04-08 10:13:25 +02:00
Sam
69d2f54b03 php 7.2 2018-04-05 14:29:10 +02:00
Sam
5a1c1c16d7 fix clean composer 2018-04-04 16:57:39 +02:00
Sam
3ade74efc9 fix Dockerfile 2018-04-04 12:46:21 +02:00
Sam
dc00f6a604 rm composer after build 2018-04-04 12:30:58 +02:00
Sam
3ef75b29ff 4.2.2 2018-03-12 10:05:06 +01:00
Sam
e6df981f06 4.2.1 2018-03-05 09:44:34 +01:00
Aurélien Lavorel
27bdb5d95b [add] mysql performance improvement 2018-02-28 17:46:22 +01:00
Sam
206fe5db2d 4.2.0 2018-02-22 10:03:01 +01:00
Samuel Laulhau
4e5022fcc4 remove useless and/or wrong default settings 2018-02-20 15:01:24 +01:00
Sam
ded7e32051 4.1.5 2018-02-07 22:10:59 +01:00
Sam
d2ae9b365b 4.1.4 2018-01-25 22:02:05 +01:00
Sam
612645fad2 4.1.3 2018-01-19 15:56:49 +01:00
Sam
192f6d7648 4.1.2 2018-01-16 21:45:53 +01:00
Sam
083fe9648e 4.1.1 2018-01-16 21:45:26 +01:00
Sam
6ad5e6ec48 fix readme for image base 2018-01-14 22:53:25 +01:00
Sam
13487557e6 docker-compose for production 2018-01-14 22:44:20 +01:00
Sam
16f77b069e 4.1.0 2018-01-09 19:05:50 +01:00
Sam
58c4eb66d4 4.0.1 2017-12-14 22:28:01 +01:00
Sam
d044303647 4.0.0 2017-12-12 10:42:04 +01:00
Sam
09b5b84750 3.9.2 2017-11-20 10:36:53 +01:00
Sam
2932f92f4c 3.9.1 2017-11-14 15:24:03 +01:00
Sam
3ad282ac29 re3.9.0 2017-11-09 14:01:23 +01:00
Sam
507451d7ca 3.9.0 2017-11-09 13:53:53 +01:00
Sam
2d563e4b73 3.8.1 2017-10-23 14:39:16 +02:00
Sam
991b22e121 3.8.0 2017-10-15 15:01:13 +02:00
jelle
c4e8f3ea0b Mount MySQL volume to make data persistent 2017-10-15 14:53:13 +02:00
Samuel Laulhau
ee272cd52f add cipher/key 2017-10-15 14:51:01 +02:00
Sam
a60567ae16 3.7.2 2017-10-02 10:23:24 +02:00
Sam
d81542e536 3.7.1 2017-09-18 09:48:28 +02:00
Sam
19333d150a 3.7.0 2017-09-11 08:27:02 +02:00
Sam
ad1c976a31 3.6.1 2017-08-17 10:39:37 +02:00
Sam
bd7153a0b7 3.6.0 2017-08-08 11:51:37 +02:00
Sam
c1fde99ad4 3.5.1 2017-07-23 10:35:03 +02:00
Sam
c7d901f8c3 3.5.0 2017-07-23 10:34:47 +02:00
arubacao
e432564e48 Revert "Update php:7.0-fpm to php:7.1-fpm"
This reverts commit 17759c3df7.
2017-07-20 09:14:02 +02:00
arubacao
2d42e33da0 Revert "remove mcrypt"
This reverts commit ce4cf2118b.
2017-07-20 09:14:02 +02:00
arubacao
00ae03ce24 Revert "remove rijndael-128 as default cipher"
This reverts commit e0f46d2034.
2017-07-20 09:14:02 +02:00
arubacao
5f4e58ba77 Revert "use wildcard for nginx.conf"
This reverts commit 5d2760a47a.
2017-07-20 09:14:02 +02:00
arubacao
b822d9d53a Revert "add APP_KEY for the example"
This reverts commit c90e0dd42b.
2017-07-20 09:14:02 +02:00
arubacao
8a935f042e Revert "repeat steps for alpine"
This reverts commit ddb96915cf.
2017-07-20 09:14:02 +02:00
arubacao
ddb96915cf repeat steps for alpine 2017-07-13 17:58:50 +02:00
arubacao
c90e0dd42b add APP_KEY for the example 2017-07-13 17:58:50 +02:00
arubacao
5d2760a47a use wildcard for nginx.conf 2017-07-13 17:58:50 +02:00
arubacao
e0f46d2034 remove rijndael-128 as default cipher 2017-07-13 17:58:50 +02:00
arubacao
ce4cf2118b remove mcrypt 2017-07-13 17:58:50 +02:00
arubacao
17759c3df7 Update php:7.0-fpm to php:7.1-fpm 2017-07-13 17:58:50 +02:00
Sam
c97fd64020 3.4.2 2017-06-30 14:45:02 +02:00
Sam
467960061b 3.4.1 2017-06-22 20:48:57 +02:00
Sam
2dfa7e1edd 3.4.0 2017-06-18 12:53:09 +02:00
Sam
475b3e7121 notice on phantomjs/alpine 2017-06-18 12:52:36 +02:00
Sam
7c40a5a813 alpine change phantomjs bin path 2017-06-11 16:55:34 +02:00
Sam
b92c8d928e fix phantomjs install in alpine 2017-06-11 14:25:18 +02:00
Sam
0ed2a1cf4c 3.3.3 2017-05-16 09:38:58 +02:00
Sam
43bb842598 3.3.1 2017-05-10 09:09:46 +02:00
Sam
8c1c2488bd fix alpine error 2017-05-03 16:15:34 +02:00
Sam
baf2459f72 alpine error fix 2017-05-03 14:37:55 +02:00
Sam
89ad8ad2bf fix alpine chown 2017-05-03 11:28:15 +02:00
Sam
d80a0fa212 3.3.0 2017-05-03 10:51:13 +02:00
Sam
bce728b558 dedebug exemple 2017-04-25 12:20:59 +02:00
Sam
23a8241d13 alpine 3.2.1 2017-04-25 12:02:06 +02:00
Sam
302da0c895 add opcahce 2017-04-25 11:24:33 +02:00
Sam
81075f2595 alpine working image 2017-04-25 11:17:51 +02:00
Sam
fae767223f alpine image first draft 2017-04-25 11:17:51 +02:00
Sam
a896a49e48 add opcahce 2017-04-25 11:13:50 +02:00
Sam
4d00017b2a 3.2.1 2017-04-23 19:54:06 +02:00
Sam
9601557224 3.2.0 2017-04-03 11:07:27 +02:00
Sam
5b1bb1f277 3.1.3 2017-03-23 09:14:23 +01:00
Sam
2208768dfe 3.1.2 2017-03-13 16:59:11 +01:00
Sam
5690f782b8 3.1.1 2017-03-06 16:44:44 +01:00
Sam
61cd833979 3.1.0 2017-02-28 10:37:49 +01:00
Sam
546ee0b139 lighter image 2017-02-17 10:16:29 +01:00
Sam
cde6e6ecd1 remove outdated comment 2017-02-16 22:20:57 +01:00
Sam
c07242eb1c check public directory for upgrade 2017-02-16 20:25:21 +01:00
Sam
c27b04b63a rm db test 2017-02-16 19:15:51 +01:00
Samuel Laulhau
540d3180f1 Merge pull request #47 from miend/master
Issue #45: Rename the entrypoint script to make it a bit cleaner.
2017-02-15 21:35:43 +01:00
miend
f3811ef09b Rename the entrypoint script to make it a bit cleaner. 2017-02-15 12:19:17 -06:00
Sam
0f114b8827 Merge branch 'master' of github.com:invoiceninja/dockerfiles 2017-02-10 16:06:05 +01:00
Sam
bbc3e5303b 3.0.5 2017-02-10 16:05:51 +01:00
Samuel Laulhau
554233c9ea remove phantomjs archive 2017-02-08 17:55:15 +01:00
Sam
7623fceadf 3.0.4 2017-02-08 17:37:58 +01:00
Samuel Laulhau
375f40c710 Merge pull request #43 from freskimo/patch2
removed unused exposed port
2017-02-07 19:05:56 +01:00
Natvingerwerk
4ca9be0a6a removed unused exposed port 2017-02-07 16:03:22 +01:00
Samuel Laulhau
72c23cea15 Merge pull request #40 from freskimo/patch1
Removal .env file use docker env instead
2017-02-07 14:03:47 +01:00
Natvingerwerk
aec8f75414 fix: removed creation of .env file and set this via docker env vars + added doc 2017-02-07 13:02:33 +01:00
Samuel Laulhau
12f011d7ea Merge pull request #38 from cinemast/patch-3
Remove duplicate ENV variables
2017-02-04 11:13:48 +01:00
Peter Spiess-Knafl
1e6c272b04 Remove duplicate ENV variables
Since the variables are passed through an .env file they no longer need to passed directly, right?
2017-02-04 09:00:42 +01:00
Sam
771f647873 make cron work in example 2017-02-03 17:39:33 +01:00
Sam
7ce608aeff add phantomjs 2017-02-02 15:34:19 +01:00
Sam
77098587a3 3.0.3 2017-01-30 15:41:12 +01:00
Sam
706fb0fe2c 3.0.2 2017-01-25 09:04:52 +01:00
Sam
ee1f2f6e09 3.0.1 2017-01-24 18:45:36 +01:00
Sam
27bdd0ec1a 3.0.0 2017-01-24 09:00:36 +01:00
Sam
e53f60dad8 2.9.5 2017-01-14 11:33:39 +01:00
Sam
b0162488bd 2.9.4 2017-01-12 14:52:50 +01:00
Samuel Laulhau
7caf8c9ea8 use same env inside the app then in docker command 2017-01-11 10:09:55 +01:00
Samuel Laulhau
230856e526 Merge pull request #28 from cinemast/patch-1
Enable additional SMTP env variables
2017-01-11 10:03:34 +01:00
Sam
1e2bb5744f 2.9.3 2017-01-04 12:16:52 +01:00
Sam
54004f3038 2.9.2 2017-01-03 13:53:29 +01:00
Peter Spiess-Knafl
9e8717d6d8 Enable additional SMTP env variables 2017-01-02 14:07:58 +01:00
Sam
5ba03e8ccf 2.9.1 2016-12-20 18:31:51 +01:00
Samuel Laulhau
dd9fea1a33 Merge pull request #25 from cinemast/master
Use php7.0 instead of latest. (Closes #23)
2016-12-19 09:49:18 +01:00
Samuel Laulhau
4f79c894e6 2.9.0 2016-12-15 17:42:49 +01:00
Samuel Laulhau
5820915a50 2.9 2016-12-15 17:19:29 +01:00
Peter Spiess-Knafl
7c1a352676 Use php7.0 instead of latest. (Closes #23) 2016-12-09 13:40:07 +01:00
Samuel Laulhau
ce2dd38f9d 2.8.2 2016-11-30 10:33:00 +01:00
Samuel Laulhau
6c67e98f79 2.8.1 2016-11-18 09:57:56 +01:00
Sam
72ee5ef29e rename exemple folder #22 2016-11-07 21:07:59 +01:00
17 changed files with 596 additions and 235 deletions

24
.editorconfig Normal file
View File

@@ -0,0 +1,24 @@
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
# Matches multiple files with brace expansion notation
# Set default charset
[*.*]
charset = utf-8
# Tab indentation (no size specified)
[Makefile]
indent_style = tab
# Matches the files *.yml
[*.yml]
indent_style = space
indent_size = 2

26
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,26 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
# Before creating an issue
Be sure the issue isn't yet reported here or dicussed on stackoverflow
# Logs
Did you check the logs ?
If any Error is present there please copy/paste it below
```
Any Error that sucks
```
# Setup information
What version do you run?
Do you run docker-compose or a single Dockerfile ?

35
.github/workflows/build_push.yml vendored Normal file
View File

@@ -0,0 +1,35 @@
name: Docker images
on:
release:
types: [published]
jobs:
deploy:
name: Build images
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Login to DockerHub
run: echo ${{ secrets.DOCKERHUB_PASSWORD }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
- name: Get the latest tag
id: vars
run: echo ::set-output name=tag::$(echo ${GITHUB_REF:10})
- name: Build image from alpine - v5
run: make build-alpine-v5 TAG="${{steps.vars.outputs.tag}}"
- name: Push alpine-based image - v5
run: make push-alpine-v5 TAG="${{steps.vars.outputs.tag}}"
- name: Build image from alpine - v4
run: make build-alpine TAG="${{steps.vars.outputs.tag}}"
- name: Push alpine-based image - v4
run: make push-alpine TAG="${{steps.vars.outputs.tag}}"
- name: Logout from DockerHub
run: docker logout

View File

@@ -1,65 +0,0 @@
FROM php:fpm
MAINTAINER Samuel Laulhau <sam@lalop.co>
#####
# SYSTEM REQUIREMENT
#####
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libmcrypt-dev zlib1g-dev git libgmp-dev \
libfreetype6-dev libjpeg62-turbo-dev libpng12-dev \
&& ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/local/include/ \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-configure gmp \
&& docker-php-ext-install iconv mcrypt mbstring pdo pdo_mysql zip gd gmp \
&& rm -rf /var/lib/apt/lists/*
#####
# INSTALL COMPOSER
#####
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
#####
# DOWNLOAD AND INSTALL INVOICE NINJA
#####
ENV INVOICENINJA_VERSION 2.8
RUN curl -o invoiceninja.tar.gz -SL https://github.com/hillelcoren/invoice-ninja/archive/v${INVOICENINJA_VERSION}.tar.gz \
&& tar -xzf invoiceninja.tar.gz -C /var/www/ \
&& rm invoiceninja.tar.gz \
&& mv /var/www/invoiceninja-${INVOICENINJA_VERSION} /var/www/app \
&& chown -R www-data:www-data /var/www/app \
&& composer install --working-dir /var/www/app -o --no-dev --no-interaction --no-progress \
&& chown -R www-data:www-data /var/www/app/bootstrap/cache \
# && echo ${INVOICENINJA_VERSION} > /var/www/app/storage/version.txt \
&& mv /var/www/app/storage /var/www/app/docker-backup-storage \
&& mv /var/www/app/public/logo /var/www/app/docker-backup-public-logo
######
# DEFAULT ENV
######
ENV DB_HOST mysql
ENV DB_DATABASE ninja
ENV APP_KEY SomeRandomString
ENV LOG errorlog
ENV APP_DEBUG 0
ENV APP_CIPHER rijndael-128
ENV SELF_UPDATER_SOURCE ''
#use to be mounted into nginx for exemple
VOLUME /var/www/app/public
WORKDIR /var/www/app
EXPOSE 80
COPY app-entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
CMD ["php-fpm"]

58
Makefile Normal file
View File

@@ -0,0 +1,58 @@
ifndef TAG
$(error The TAG variable is missing.)
endif
# Docker Hub namespace
HUB_NAMESPACE="invoiceninja"
# Image name
IMAGE="invoiceninja"
# Check if v5 tag is passed, so that a v5 version should be built
IS_V5=$(shell echo ${TAG} | egrep ^5)
# Version of Invoice Ninja. As the tag can be something like 5.0.4-p1, the version is 5.0.4.
# This supports changes to the Dockerfiles with always the same Invoice Ninja version
VERSION=$(shell echo ${TAG} | sed "s/-.*//")
# Building docker images based on alpine.
# Assigned tags:
# - :alpine
# - :alpine-<RELEASE VERSION>
.PHONY: build-alpine
build-alpine:
ifeq ($(IS_V5),)
$(info Make: Building "$(VERSION)" tagged images from alpine.)
@docker build -t ${HUB_NAMESPACE}/${IMAGE}:alpine-${VERSION} --build-arg INVOICENINJA_VERSION=${VERSION} --file ./alpine/Dockerfile .
# Tag as alpine-4
@docker tag ${HUB_NAMESPACE}/${IMAGE}:alpine-${VERSION} ${HUB_NAMESPACE}/${IMAGE}:alpine-4
$(info Make: Done.)
endif
.PHONY: push-alpine
push-alpine:
ifeq ($(IS_V5),)
$(info Make: Pushing tagged images from alpine.)
@docker push ${HUB_NAMESPACE}/${IMAGE}:alpine-${VERSION}
@docker push ${HUB_NAMESPACE}/${IMAGE}:alpine-4
$(info Make: Done.)
endif
.PHONY: build-alpine-v5
build-alpine-v5:
ifneq ($(IS_V5),)
$(info Make: Building "$(VERSION)" tagged images from alpine.)
@docker build -t ${HUB_NAMESPACE}/${IMAGE}:${VERSION} --build-arg INVOICENINJA_VERSION=${VERSION} --file ./alpine/Dockerfile_v5 .
@docker tag ${HUB_NAMESPACE}/${IMAGE}:${VERSION} ${HUB_NAMESPACE}/${IMAGE}:5
@docker tag ${HUB_NAMESPACE}/${IMAGE}:${VERSION} ${HUB_NAMESPACE}/${IMAGE}:latest
$(info Make: Done.)
endif
.PHONY: push-alpine-v5
push-alpine-v5:
ifneq ($(IS_V5),)
$(info Make: Pushing tagged images from alpine.)
@docker push ${HUB_NAMESPACE}/${IMAGE}:${VERSION}
@docker push ${HUB_NAMESPACE}/${IMAGE}:5
@docker push ${HUB_NAMESPACE}/${IMAGE}:latest
endif

View File

@@ -1,8 +1,20 @@
DockerFile for invoice ninja (https://www.invoiceninja.com/)
![Docker images](https://github.com/invoiceninja/dockerfiles/workflows/Docker%20images/badge.svg)
[![Docker image, latest](https://img.shields.io/docker/image-size/invoiceninja/invoiceninja/latest?label=latest)](https://hub.docker.com/r/invoiceninja/invoiceninja)
[![Docker image, alpine](https://img.shields.io/docker/image-size/invoiceninja/invoiceninja/alpine?label=alpine)](https://hub.docker.com/r/invoiceninja/invoiceninja)
This image is based on `php:7` official version.
# Docker for [Invoice Ninja](https://www.invoiceninja.com/)
The easiest way to test Invoice Ninja with docker is by copying the example directory and run `docker-compose up`.
The first launch could be slow because we create all tables and seed the database, but once youe see `NOTICE: ready to handle connections` all is ready.
:bulb: Please consider posting your question on [StackOverflow](https://stackoverflow.com/) as this widens the audience that can help you. Just use the tag `invoice-ninja` and we are there to help. This is mostly related to the usage of Invoice Ninja and the docker setup.
If you feel your question is directly related to a code change or you want to sent in a change + PR Github is the right place, of course.
:crown: **Features**
:lock: Automatic HTTPS (:heart: [Caddy](https://caddyserver.com/))
:hammer: Fully production-ready through docker-compose
:pencil: Adjustable to your needs via environment variable
## Documentation
Please see our [wiki](https://github.com/invoiceninja/dockerfiles/wiki) for further guidance.
To make your data persistent, you have to mount `/var/www/app/public/logo` and `/var/www/app/storage`.

78
alpine/Dockerfile Normal file
View File

@@ -0,0 +1,78 @@
ARG PHP_VERSION=7.2
FROM php:${PHP_VERSION}-fpm-alpine
LABEL maintainer="Samuel Laulhau <sam@lalop.co>, Holger Lösken <holger.loesken@codedge.de>"
#####
# SYSTEM REQUIREMENT
#####
ARG INVOICENINJA_VERSION
WORKDIR /var/www/app
COPY entrypoint.sh /usr/local/bin/docker-entrypoint
RUN chmod +x /usr/local/bin/docker-entrypoint
RUN set -eux; \
apk add --no-cache \
gmp-dev \
freetype-dev \
libarchive-tools \
libjpeg-turbo-dev \
libpng-dev \
libwebp-dev\
libzip-dev
RUN docker-php-ext-configure gd --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include --with-webp-dir=/usr/include --with-freetype-dir=/usr/include/; \
docker-php-ext-configure zip --with-libzip; \
docker-php-ext-install -j$(nproc) \
iconv \
gd \
gmp \
mbstring \
opcache \
pdo \
pdo_mysql \
zip
COPY ./config/php/php.ini /usr/local/etc/php/php.ini
COPY ./config/php/php-cli.ini /usr/local/etc/php/php-cli.ini
# Separate user
ENV IN_USER=invoiceninja
RUN addgroup -S "$IN_USER" && \
adduser \
--disabled-password \
--gecos "" \
--home "$(pwd)" \
--ingroup "$IN_USER" \
--no-create-home \
"$IN_USER"; \
addgroup "$IN_USER" www-data; \
chown -R "$IN_USER":"$IN_USER" .
USER $IN_USER
# Download and install IN
ENV INVOICENINJA_VERSION="${INVOICENINJA_VERSION}"
RUN curl -s -o /tmp/ninja.zip -SL https://download.invoiceninja.com/ninja-v${INVOICENINJA_VERSION}.zip \
&& bsdtar --strip-components=1 -C /var/www/app -xf /tmp/ninja.zip \
&& rm /tmp/ninja.zip \
&& mv /var/www/app/storage /var/www/app/docker-backup-storage \
&& mv /var/www/app/public /var/www/app/docker-backup-public \
&& mkdir -p /var/www/app/public/logo /var/www/app/storage \
&& cp /var/www/app/.env.example /var/www/app/.env \
&& chmod -R 755 /var/www/app/storage \
&& rm -rf /var/www/app/docs /var/www/app/tests
# Override the environment settings from projects .env file
ENV LOG errorlog
ENV SELF_UPDATER_SOURCE ''
# Use to be mounted into nginx
VOLUME /var/www/app/public
ENTRYPOINT ["docker-entrypoint"]
CMD ["php-fpm"]

97
alpine/Dockerfile_v5 Normal file
View File

@@ -0,0 +1,97 @@
ARG PHP_VERSION=7.3
# Get Invoice Ninja
FROM alpine:latest as base
ARG INVOICENINJA_VERSION
RUN set -eux; \
apk add --no-cache \
curl \
libarchive-tools; \
mkdir -p /var/www/app
RUN curl -o /tmp/ninja.tar.gz -LJ0 https://github.com/invoiceninja/invoiceninja/tarball/v$INVOICENINJA_VERSION \
&& bsdtar --strip-components=1 -C /var/www/app -xf /tmp/ninja.tar.gz \
&& rm /tmp/ninja.tar.gz \
&& cp -R /var/www/app/storage /var/www/app/docker-backup-storage \
&& cp -R /var/www/app/public /var/www/app/docker-backup-public \
&& mkdir -p /var/www/app/public/logo /var/www/app/storage \
&& cp /var/www/app/.env.example /var/www/app/.env \
&& cp /var/www/app/.env.dusk.example /var/www/app/.env.dusk.local \
&& rm -rf /var/www/app/docs /var/www/app/tests
# Install nodejs packages
FROM node:12-alpine as frontend
COPY --from=base /var/www/app /var/www/app
WORKDIR /var/www/app/
RUN npm install
# Prepare php image
FROM php:${PHP_VERSION}-fpm-alpine
ARG INVOICENINJA_VERSION
ENV INVOICENINJA_VERSION=$INVOICENINJA_VERSION
LABEL maintainer="Samuel Laulhau <sam@lalop.co>, Holger Lösken <holger.loesken@codedge.de>"
WORKDIR /var/www/app
COPY --from=frontend /var/www/app /var/www/app
COPY entrypoint.sh /usr/local/bin/docker-entrypoint
RUN chmod +x /usr/local/bin/docker-entrypoint
RUN set -eux; \
apk add --no-cache \
nodejs \
npm \
freetype-dev \
gmp-dev \
libjpeg-turbo-dev \
libpng-dev \
libzip-dev; \
docker-php-ext-configure zip --with-libzip; \
docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/; \
docker-php-ext-install -j$(nproc) \
bcmath \
exif \
gd \
gmp \
mbstring \
mysqli \
opcache \
pdo \
pdo_mysql \
zip
COPY ./config/php/php.ini /usr/local/etc/php/php.ini
COPY ./config/php/php-cli.ini /usr/local/etc/php/php-cli.ini
## Separate user
ENV INVOICENINJA_USER=invoiceninja
RUN addgroup -S "$INVOICENINJA_USER" && \
adduser \
--disabled-password \
--gecos "" \
--home "$(pwd)" \
--ingroup "$INVOICENINJA_USER" \
--no-create-home \
"$INVOICENINJA_USER"; \
addgroup "$INVOICENINJA_USER" www-data; \
chown -R "$INVOICENINJA_USER":"$INVOICENINJA_USER" /var/www/app
# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer; \
composer global require hirak/prestissimo;
USER $INVOICENINJA_USER
RUN composer install --no-dev --no-suggest --no-progress
# Override the environment settings from projects .env file
ENV APP_ENV production
ENV LOG errorlog
ENTRYPOINT ["docker-entrypoint"]
CMD ["php-fpm"]

View File

@@ -1,69 +0,0 @@
#!/bin/bash
set -e
# if we're linked to MySQL, and we're using the root user, and our linked
# container has a default "root" password set up and passed through... :)
: ${DB_USERNAME:=root}
if [ "$DB_USERNAME" = 'root' ]; then
: ${DB_PASSWORD:=$MYSQL_ENV_MYSQL_ROOT_PASSWORD}
fi
echo "DB_USERNAME=$DB_USERNAME" >> .env
echo "DB_PASSWORD=$DB_PASSWORD" >> .env
if [ ! -d /var/www/app/storage ]; then
cp -Rp /var/www/app/docker-backup-storage /var/www/app/storage
else
IN_STORAGE_BACKUP="$(ls /var/www/app/docker-backup-storage/)"
for path in $IN_STORAGE_BACKUP; do
if [ ! -e "/var/www/app/storage/$path" ]; then
cp -Rp "/var/www/app/docker-backup-storage/$path" "/var/www/app/storage/"
fi
done
fi
if [ ! -d /var/www/app/public/logo ]; then
cp -Rp /var/www/app/docker-backup-public-logo /var/www/app/public/logo
else
IN_LOGO_BACKUP="$(ls /var/www/app/docker-backup-public-logo/)"
for path in $IN_LOGO_BACKUP; do
if [ ! -e "/var/www/app/public/logo/$path" ]; then
cp -Rp "/var/www/app/docker-backup-public-logo/$path" "/var/www/app/public/logo/"
fi
done
fi
chown www-data:www-data /var/www/app/.env
# widely inspired from https://github.com/docker-library/wordpress/blob/c674e9ceedf582705e0ad8487c16b42b37a5e9da/fpm/docker-entrypoint.sh#L128
TERM=dumb php -- "$DB_HOST" "$DB_USERNAME" "$DB_PASSWORD" "$DB_DATABASE" <<'EOPHP'
<?php
$stderr = fopen('php://stderr', 'w');
list($host, $port) = explode(':', $argv[1], 2);
$maxTries = 20;
do {
try {
$connection = new Pdo("mysql:dbname={$argv[4]};host={$host};port={$port}", $argv[2], $argv[3]);
fwrite($stderr, 'MySQL ready'. "\n");
exit(0);
} catch (PDOException $e) {
fwrite($stderr, 'MySQL Connection Error: ' . $e->getMessage(). "\n");
if (--$maxTries <= 0) {
exit(1);
}
sleep(3);
}
} while (true);
EOPHP
#php artisan optimize --force
#php artisan migrate --force
#if [ ! -e "/var/www/app/is-seeded" ]; then
#php artisan db:seed --force
#touch "/var/www/app/is-seeded"
#fi
echo 'start'
exec "$@"

6
config/caddy/Caddyfile Normal file
View File

@@ -0,0 +1,6 @@
{$APP_URL} {
root * /var/www/app/public
php_fastcgi app:9000
encode zstd gzip
file_server browse
}

View File

@@ -0,0 +1,25 @@
server {
listen 80 default_server;
server_name in.localhost;
root /var/www/app/public/;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
}

18
config/php/php-cli.ini Normal file
View File

@@ -0,0 +1,18 @@
session.auto_start = Off
short_open_tag = Off
error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_DEPRECATED
opcache.enable_cli=1
opcache.fast_shutdown=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
# http://symfony.com/doc/current/performance.html
realpath_cache_size = 4096K
realpath_cache_ttl = 600
memory_limit = 2G
post_max_size = 6M
upload_max_filesize = 5M

17
config/php/php.ini Normal file
View File

@@ -0,0 +1,17 @@
session.auto_start = Off
short_open_tag = Off
error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_DEPRECATED
opcache.enable_cli=1
opcache.fast_shutdown=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
# http://symfony.com/doc/current/performance.html
realpath_cache_size = 4096K
realpath_cache_ttl = 600
post_max_size = 6M
upload_max_filesize = 5M

92
docker-compose.yml Normal file
View File

@@ -0,0 +1,92 @@
version: '3.7'
services:
server:
image: caddy:alpine
restart: always
environment:
- APP_URL=https://localhost
volumes:
# Vhost configuration
- ./config/caddy/Caddyfile:/etc/caddy/Caddyfile
# Configure your mounted directories, make sure the folder 'public' and 'storage'
# exist, before mounting them
- public:/var/www/app/public
- storage:/var/www/app/storage
# you may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data!
# - ./docker/app/public:/var/www/app/public:rw,delegated
# - ./docker/app/storage:/var/www/app/storage:rw,delegated
depends_on:
- app
# Run webserver nginx on port 80
# Feel free to modify depending what port is already occupied
ports:
- "80:80"
- "443:443"
networks:
- invoiceninja
app:
image: invoiceninja/invoiceninja:5
restart: always
environment:
- APP_URL=https://localhost
- APP_KEY=<INSERT THE GENERATED APPLICATION KEY HERE>
- MULTI_DB_ENABLED=false
- DB_HOST1=db
volumes:
# Configure your mounted directories, make sure the folder 'public' and 'storage'
# exist, before mounting them
- public:/var/www/app/public
- storage:/var/www/app/storage
# you may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data!
# - ./docker/app/public:/var/www/app/public:rw,delegated
# - ./docker/app/storage:/var/www/app/storage:rw,delegated
depends_on:
- db
networks:
- invoiceninja
db:
image: mysql:5
restart: always
environment:
- MYSQL_ROOT_PASSWORD=ninjaAdm1nPassword
- MYSQL_USER=ninja
- MYSQL_PASSWORD=ninja
- MYSQL_DATABASE=db-ninja-01
volumes:
- mysql-data:/var/lib/mysql:rw
# you may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data!
# - ./docker/mysql/data:/var/lib/mysql:rw,delegated
networks:
- invoiceninja
# cron:
# image: invoiceninja/invoiceninja
# volumes:
# - storage:/var/www/app/storage
# - logo:/var/www/app/public/logo
# - public:/var/www/app/public
# entrypoint: |
# bash -c 'bash -s <<EOF
# trap "break;exit" SIGHUP SIGINT SIGTERM
# sleep 300s
# while /bin/true; do
# ./artisan ninja:send-invoices
# ./artisan ninja:send-reminders
# sleep 1d
# done
# EOF'
# networks:
# - invoiceninja
volumes:
mysql-data:
public:
storage:
networks:
invoiceninja:

103
entrypoint.sh Executable file
View File

@@ -0,0 +1,103 @@
#!/usr/bin/env sh
set -e
# logging functions
in_log() {
local type="$1"; shift
printf '%s [%s] [Entrypoint]: %s\n' "$(date -u '+%Y-%m-%dT%H:%M:%SZ')" "$type" "$*"
}
in_error() {
in_log ERROR "$@" >&2
exit 1
}
# Indirect expansion (ie) is not supported in bourne shell. That's why we are using this "magic" here.
ie_gv() {
eval "echo \$$1"
}
# usage: file_env VAR [DEFAULT]
# ie: file_env 'XYZ_DB_PASSWORD' 'example'
# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of
# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature)
file_env() {
local var="$1"
local fileVar="${var}_FILE"
local def="${2:-}"
if [ "$(ie_gv ${var})" != "" ] && [ "$(ie_gv ${fileVar})" != "" ]; then
in_error "Both $var and $fileVar are set (but are exclusive)"
fi
local val="$def"
if [ "$(ie_gv ${var})" != "" ]; then
val=$(ie_gv ${var})
elif [ "$(ie_gv ${fileVar})" != "" ]; then
val=`cat $(ie_gv ${fileVar})`
fi
export "$var"="$val"
unset "$fileVar"
}
# first arg is `-f` or `--some-option`
if [ "${1#-}" != "$1" ]; then
set -- php-fpm "$@"
fi
BAK_STORAGE_PATH=/var/www/app/docker-backup-storage/
BAK_LOGO_PATH=/var/www/app/docker-backup-public/logo/
if [ ! -d /var/www/app/storage ]; then
cp -Rp $BAK_STORAGE_PATH /var/www/app/storage
else
if [ -d $BAK_STORAGE_PATH ]; then
IN_STORAGE_BACKUP="$(ls $BAK_STORAGE_PATH)"
for path in $IN_STORAGE_BACKUP; do
if [ ! -e "/var/www/app/storage/$path" ]; then
cp -Rp "$BAK_STORAGE_PATH/$path" "/var/www/app/storage/"
fi
done
fi
fi
if [ ! -d /var/www/app/public/logo ] && [ -d $BAK_LOGO_PATH ]; then
cp -Rp $BAK_LOGO_PATH /var/www/app/public/logo
else
if [ -d $BAK_LOGO_PATH ]; then
IN_LOGO_BACKUP="$(ls $BAK_LOGO_PATH)"
for path in $IN_LOGO_BACKUP; do
if [ ! -e "/var/www/app/public/logo/$path" ]; then
cp -Rp "$BAK_LOGO_PATH/$path" "/var/www/app/public/logo/"
fi
done
fi
fi
# compare public volume version with image version
if [ ! -e /var/www/app/public/version ] || [ "$INVOICENINJA_VERSION" != "$(cat /var/www/app/public/version)" ]; then
cp -au /var/www/app/docker-backup-public/* /var/www/app/public/
echo $INVOICENINJA_VERSION > /var/www/app/public/version
fi
# Set permission for web server to create/update files
chown -R invoiceninja:www-data /var/www/app/storage /var/www/app/public /var/www/app/bootstrap
# Initialize values that might be stored in a file
file_env 'APP_KEY'
file_env 'API_SECRET'
file_env 'CLOUDFLARE_API_KEY'
file_env 'DB_USERNAME'
file_env 'DB_PASSWORD'
file_env 'MAIL_USERNAME'
file_env 'MAIL_PASSWORD'
file_env 'MAILGUN_SECRET'
file_env 'S3_KEY'
file_env 'S3_SECRET'
# Run Laravel stuff
php artisan config:cache
php artisan optimize
exec docker-php-entrypoint "$@"

View File

@@ -1,46 +0,0 @@
version: "2"
services:
db:
image: mysql
environment:
MYSQL_DATABASE: ninja
MYSQL_ROOT_PASSWORD: pwd
app:
image: invoiceninja/invoiceninja
links:
- db:mysql
environment:
APP_DEBUG: 1
DB_USERNAME: root
DB_PASSWORD: pwd
web:
image: nginx
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
links:
- app
volumes_from:
- app
ports:
- 80
cron:
image: invoiceninja/invoiceninja
links:
- db:mysql
user: www-data
environment:
APP_DEBUG: 1
entrypoint: |
bash -c 'bash -s <<EOF
trap "break;exit" SIGHUP SIGINT SIGTERM
sleep 300s
while /bin/true; do
DB_USERNAME=root DB_PASSWORD=pwd /usr/local/bin/php /var/www/app/artisan ninja:send-invoices
DB_USERNAME=root DB_PASSWORD=pwd /usr/local/bin/php /var/www/app/artisan ninja:send-reminders
sleep 1d
done
EOF'

View File

@@ -1,50 +0,0 @@
user www-data;
events {
worker_connections 768;
}
http {
upstream backend {
server app:9000;
}
include /etc/nginx/mime.types;
default_type application/octet-stream;
gzip on;
gzip_disable "msie6";
server {
listen 80 default;
server_name your_ininja_site;
root /var/www/app/public;
index index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
sendfile off;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass backend;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
location ~ /\.ht {
deny all;
}
}
}