Compare commits

...

59 Commits

Author SHA1 Message Date
David Bomba
9377777f62 Create .keep 2021-01-04 20:15:19 +11:00
David Bomba
ac7c520620 Create .keep 2021-01-04 20:15:03 +11:00
David Bomba
1ae79cde4f Merge pull request #247 from turbo124/master
Fixes for docker file
2021-01-04 20:12:35 +11:00
David Bomba
a58b89c55d Fixes for docker file" 2021-01-04 20:11:50 +11:00
David Bomba
89e6cffa90 Merge pull request #246 from turbo124/master
Fixes for crons and folder permissions
2021-01-03 21:34:27 +11:00
David Bomba
a82d60b4f5 Fixes for crons and folder permissions 2021-01-03 21:34:04 +11:00
David Bomba
32c93eb4d7 Merge pull request #241 from beganovich/v5-skip-snappdf-download
(v5) Add environment variable to skip downloading Chromium (snappdf)
2020-12-30 09:26:34 +11:00
=
9e603ba79f Fixes for crontab 2020-12-30 07:33:50 +11:00
Benjamin Beganović
d9889fcfaa Add variable to skip Chromium download 2020-12-28 14:25:16 +01:00
David Bomba
a89e145bf9 Merge pull request #239 from beganovich/v5-transition-to-snappdf
(v5) Support for snappdf
2020-12-24 09:25:32 +11:00
Benjamin Beganović
85d46e8968 support for snappdf 2020-12-23 18:06:31 +01:00
David Bomba
0fb5fa73e0 Merge pull request #233 from turbo124/master
fixes for docker file
2020-12-05 20:14:39 +11:00
David Bomba
de3a2e4278 fixes for docker file 2020-12-05 20:14:19 +11:00
David Bomba
bb514e8d06 Merge pull request #232 from turbo124/master
Remove storage:link from image build
2020-11-30 10:00:27 +11:00
David Bomba
2034c6ebff Remove storage:link from image build 2020-11-30 09:56:30 +11:00
David Bomba
65e36505a3 Merge pull request #231 from turbo124/master
Minor fixes
2020-11-28 18:07:34 +11:00
David Bomba
03c1e32123 Minor fixes 2020-11-28 18:07:16 +11:00
David Bomba
3612c87323 Merge pull request #230 from turbo124/master
Default to puppeteer PDF generation
2020-11-28 17:51:04 +11:00
David Bomba
4e9731a23e Default to puppeteer PDF generation 2020-11-28 17:50:46 +11:00
David Bomba
dea442c442 Merge pull request #229 from turbo124/master
Install libonig-dev with apk
2020-11-28 17:26:33 +11:00
David Bomba
a24c1b98a3 Install libonig-dev with apk 2020-11-28 17:26:13 +11:00
David Bomba
1596478724 Merge pull request #228 from turbo124/master
Install libonig-dev with apt
2020-11-28 17:20:28 +11:00
David Bomba
a240fd2977 Install libonig-dev with apt 2020-11-28 17:20:09 +11:00
David Bomba
7c1ef67755 Merge pull request #227 from turbo124/master
fixes for 7.4
2020-11-28 17:15:14 +11:00
David Bomba
bfc1d7add8 fixes for 7.4 2020-11-28 17:14:57 +11:00
David Bomba
111f5a7e4e Merge pull request #226 from turbo124/master
Add libonig to build
2020-11-28 17:12:27 +11:00
David Bomba
330f3e1c0e Add libonig to build 2020-11-28 17:12:10 +11:00
David Bomba
baeb925d87 Merge pull request #225 from turbo124/master
Add libonig to build
2020-11-28 17:05:46 +11:00
David Bomba
079a05bbd8 Add libonig to build 2020-11-28 17:05:30 +11:00
David Bomba
8e995aa2ef Merge pull request #224 from turbo124/master
Add libonig to build
2020-11-28 16:56:25 +11:00
David Bomba
dee4d0f27d Add libonig to build 2020-11-28 16:56:09 +11:00
David Bomba
60e5a68e01 Merge pull request #223 from turbo124/master
Fixes for lib jpg and freetype for php7.4
2020-11-28 16:49:45 +11:00
David Bomba
67ad43d05d Fixes for lib jpg and freetype for php7.4 2020-11-28 16:49:18 +11:00
David Bomba
35beefba60 Merge pull request #222 from turbo124/master
Fixes for lib jpg and freetype for php7.4
2020-11-28 16:45:22 +11:00
David Bomba
d1309cc86f Fixes for lib jpg and freetype for php7.4 2020-11-28 16:45:03 +11:00
David Bomba
a1d9220506 Merge pull request #221 from turbo124/master
Fix for libzip when using php7.4
2020-11-28 16:39:36 +11:00
David Bomba
386359a346 Fix for libzip when using php7.4 2020-11-28 16:38:50 +11:00
David Bomba
b503418904 Merge pull request #220 from turbo124/master
Fix for libzip when using php7.4
2020-11-28 16:28:33 +11:00
David Bomba
450eaf16e3 Fix for libzip when using php7.4 2020-11-28 16:28:13 +11:00
David Bomba
1f65c9f7f6 Merge pull request #219 from turbo124/master
Fixes for building zip on php7.4
2020-11-28 16:23:28 +11:00
David Bomba
c02bf7bd03 Fixes for building zip on php7.4 2020-11-28 16:22:58 +11:00
David Bomba
4111fa87c9 Merge pull request #218 from turbo124/master
Fix for libzip when using php7.4
2020-11-28 16:15:59 +11:00
David Bomba
0d5a7671ba Fix for libzip when using php7.4 2020-11-28 16:15:40 +11:00
David Bomba
7ea6e7c48e Merge pull request #217 from turbo124/master
Bump PHP version for spatie/browsershot
2020-11-28 16:09:14 +11:00
David Bomba
27e1788e91 Bump PHP version for spatie/browsershot 2020-11-28 16:08:54 +11:00
David Bomba
d24a69ec39 Merge pull request #216 from turbo124/master
Composer fixes
2020-11-28 15:59:17 +11:00
David Bomba
8384175465 Composer fixes 2020-11-28 15:58:56 +11:00
David Bomba
f8c442ec5f Merge pull request #215 from turbo124/master
Ensure we use composer 2
2020-11-28 15:35:01 +11:00
David Bomba
05f89f064e Ensure we use composer 2 2020-11-28 15:34:40 +11:00
David Bomba
902745ec5a Merge pull request #214 from turbo124/master
minor fixes
2020-11-28 15:31:51 +11:00
David Bomba
4efba38ce5 minor fixes 2020-11-28 15:31:21 +11:00
David Bomba
a184cf2844 Merge pull request #213 from turbo124/master
Add Git / link storage
2020-11-28 07:26:12 +11:00
David Bomba
94e8be57e5 Merge branch 'master' of https://github.com/turbo124/dockerfiles 2020-11-28 07:25:07 +11:00
David Bomba
385a434833 Add git to container to allow auto-updating from container 2020-11-28 07:24:59 +11:00
David Bomba
9ddeda4c32 storage link 2020-11-25 20:33:23 +11:00
David Bomba
805e526fc9 Update docker-compose.yml 2020-11-11 10:25:05 +11:00
David Bomba
cdc35aff2f Update Dockerfile_v5 2020-11-11 10:08:21 +11:00
David Bomba
1de16ab390 Update Dockerfile_v5 2020-11-11 09:42:08 +11:00
David Bomba
b9ab50800d Update Dockerfile_v5
remove hirak global
2020-11-11 05:06:01 +11:00
6 changed files with 63 additions and 55 deletions

View File

@@ -1,4 +1,4 @@
ARG PHP_VERSION=7.3
ARG PHP_VERSION=7.4
# Get Invoice Ninja
FROM alpine:latest as base
@@ -7,6 +7,7 @@ ARG INVOICENINJA_VERSION
RUN set -eux; \
apk add --no-cache \
curl \
mysql-client \
libarchive-tools; \
mkdir -p /var/www/app
@@ -17,7 +18,6 @@ RUN curl -o /tmp/ninja.tar.gz -LJ0 https://github.com/invoiceninja/invoiceninja/
&& 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
@@ -45,19 +45,23 @@ RUN set -eux; \
apk add --no-cache \
nodejs \
npm \
mysql-client \
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/; \
libzip-dev \
oniguruma-dev \
git \
busybox-suid \
zip; \
docker-php-ext-configure gd --with-freetype --with-jpeg; \
docker-php-ext-install -j$(nproc) \
bcmath \
exif \
gd \
gmp \
mbstring \
# mbstring \
mysqli \
opcache \
pdo \
@@ -78,18 +82,11 @@ RUN apk add --no-cache \
nodejs \
yarn
# Tell Puppeteer to skip installing Chrome. We'll be using the installed package.
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
# Puppeteer v1.19.0 works with Chromium 77.
RUN yarn add puppeteer@1.19.0
## Separate user
ENV INVOICENINJA_USER=invoiceninja
RUN addgroup -S "$INVOICENINJA_USER" && \
adduser \
RUN addgroup --gid=1500 -S "$INVOICENINJA_USER" && \
adduser --uid=1500 \
--disabled-password \
--gecos "" \
--home "$(pwd)" \
@@ -99,23 +96,18 @@ RUN addgroup -S "$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;
## Set up the cronjob and run cron daemon
RUN echo "* * * * * run-parts /etc/periodic/1min" >> /etc/crontabs/root
COPY ./config/cron/cronjob_v5.sh /etc/periodic/1min/invoiceninja_cronjob
RUN chown $INVOICENINJA_USER /etc/periodic/1min/invoiceninja_cronjob && \
crond -l 2 -b
# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer;
USER $INVOICENINJA_USER
RUN composer install --no-dev --no-suggest --no-progress --quiet
RUN /usr/local/bin/composer install --no-dev --no-suggest --no-progress --quiet
# Override the environment settings from projects .env file
ENV APP_ENV production
ENV LOG errorlog
ENV SNAPPDF_EXECUTABLE_PATH /usr/bin/chromium-browser
ENTRYPOINT ["docker-entrypoint"]
CMD ["php-fpm"]

View File

@@ -1,6 +1,6 @@
server {
listen 80 default_server;
server_name in.localhost;
server_name _ in.localhost;
root /var/www/app/public/;
index index.php;

View File

@@ -2,49 +2,40 @@ version: '3.7'
services:
server:
image: caddy:alpine
image: nginx
restart: always
environment:
- APP_URL=https://localhost
- APP_URL=http://in.localhost:8003
volumes:
# Vhost configuration
- ./config/caddy/Caddyfile:/etc/caddy/Caddyfile
#- ./config/caddy/Caddyfile:/etc/caddy/Caddyfiledocker-com
- ./config/nginx/in-vhost.conf:/etc/nginx/conf.d/in-vhost.conf:ro
# 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
- ./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"
- "8003:80"
#- "443:443"
networks:
- invoiceninja
app:
image: invoiceninja/invoiceninja:5
env_file: env
restart: always
cap_add:
- SYS_ADMIN
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
- ./config/hosts:/etc/hosts:ro
- ./docker/app/public:/var/www/app/public:rw,delegated
- ./docker/app/storage:/var/www/app/storage:rw,delegated
depends_on:
- db
networks:
@@ -52,6 +43,8 @@ services:
db:
image: mysql:5
ports:
- "3305:3306"
restart: always
environment:
- MYSQL_ROOT_PASSWORD=ninjaAdm1nPassword
@@ -59,9 +52,27 @@ services:
- MYSQL_PASSWORD=ninja
- MYSQL_DATABASE=ninja
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
- ./docker/mysql/data:/var/lib/mysql:rw,delegated
networks:
- invoiceninja
# THIS IS ONLY A VALID CONFIGURATION FOR IN 5. DO NOT USE FOR IN 4.
cron:
image: invoiceninja/invoiceninja:5
env_file: env
volumes:
- ./config/hosts:/etc/hosts:ro
- ./docker/app/public:/var/www/app/public:rw,delegated
- ./docker/app/storage:/var/www/app/storage:rw,delegated
entrypoint: |
/bin/sh -c 'sh -s <<EOF
trap "break;exit" SIGHUP SIGINT SIGTERM
while true; do
php artisan schedule:run;
sleep 60s
done
EOF'
networks:
- invoiceninja
@@ -84,13 +95,7 @@ services:
# EOF'
# networks:
# - invoiceninja
volumes:
mysql-data:
public:
storage:
# This is needed for letting th cron run correctly
# logo:
#
networks:
invoiceninja:

1
docker/app/public/.keep Normal file
View File

@@ -0,0 +1 @@

1
docker/app/storage/.keep Normal file
View File

@@ -0,0 +1 @@

9
env Normal file
View File

@@ -0,0 +1,9 @@
APP_URL=http://in.localhost:8003/
APP_KEY=<insert your generated key in here>
APP_DEBUG=true
MULTI_DB_ENABLED=false
DB_HOST1=db
DB_USERNAME1=ninja
DB_PASSWORD1=ninja
DB_DATABASE1=ninja
PHANTOMJS_PDF_GENERATION=false