mirror of
https://github.com/invoiceninja/dockerfiles.git
synced 2026-01-29 18:27:09 +01:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9377777f62 | ||
|
|
ac7c520620 | ||
|
|
1ae79cde4f | ||
|
|
a58b89c55d | ||
|
|
89e6cffa90 | ||
|
|
a82d60b4f5 | ||
|
|
32c93eb4d7 | ||
|
|
9e603ba79f | ||
|
|
d9889fcfaa |
@@ -53,6 +53,7 @@ RUN set -eux; \
|
|||||||
libzip-dev \
|
libzip-dev \
|
||||||
oniguruma-dev \
|
oniguruma-dev \
|
||||||
git \
|
git \
|
||||||
|
busybox-suid \
|
||||||
zip; \
|
zip; \
|
||||||
docker-php-ext-configure gd --with-freetype --with-jpeg; \
|
docker-php-ext-configure gd --with-freetype --with-jpeg; \
|
||||||
docker-php-ext-install -j$(nproc) \
|
docker-php-ext-install -j$(nproc) \
|
||||||
@@ -84,8 +85,8 @@ RUN apk add --no-cache \
|
|||||||
## Separate user
|
## Separate user
|
||||||
ENV INVOICENINJA_USER=invoiceninja
|
ENV INVOICENINJA_USER=invoiceninja
|
||||||
|
|
||||||
RUN addgroup -S "$INVOICENINJA_USER" && \
|
RUN addgroup --gid=1500 -S "$INVOICENINJA_USER" && \
|
||||||
adduser \
|
adduser --uid=1500 \
|
||||||
--disabled-password \
|
--disabled-password \
|
||||||
--gecos "" \
|
--gecos "" \
|
||||||
--home "$(pwd)" \
|
--home "$(pwd)" \
|
||||||
@@ -95,15 +96,10 @@ RUN addgroup -S "$INVOICENINJA_USER" && \
|
|||||||
addgroup "$INVOICENINJA_USER" www-data; \
|
addgroup "$INVOICENINJA_USER" www-data; \
|
||||||
chown -R "$INVOICENINJA_USER":"$INVOICENINJA_USER" /var/www/app
|
chown -R "$INVOICENINJA_USER":"$INVOICENINJA_USER" /var/www/app
|
||||||
|
|
||||||
|
|
||||||
# Install Composer
|
# Install Composer
|
||||||
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer;
|
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer;
|
||||||
|
|
||||||
## 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
|
|
||||||
|
|
||||||
USER $INVOICENINJA_USER
|
USER $INVOICENINJA_USER
|
||||||
|
|
||||||
RUN /usr/local/bin/composer install --no-dev --no-suggest --no-progress --quiet
|
RUN /usr/local/bin/composer install --no-dev --no-suggest --no-progress --quiet
|
||||||
|
|||||||
@@ -2,54 +2,40 @@ version: '3.7'
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
server:
|
server:
|
||||||
image: caddy:alpine
|
image: nginx
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
- APP_URL=https://localhost
|
- APP_URL=http://in.localhost:8003
|
||||||
volumes:
|
volumes:
|
||||||
# Vhost configuration
|
# 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'
|
# Configure your mounted directories, make sure the folder 'public' and 'storage'
|
||||||
# exist, before mounting them
|
# 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!
|
# 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/public:/var/www/app/public:rw,delegated
|
||||||
# - ./docker/app/storage:/var/www/app/storage:rw,delegated
|
- ./docker/app/storage:/var/www/app/storage:rw,delegated
|
||||||
depends_on:
|
depends_on:
|
||||||
- app
|
- app
|
||||||
# Run webserver nginx on port 80
|
# Run webserver nginx on port 80
|
||||||
# Feel free to modify depending what port is already occupied
|
# Feel free to modify depending what port is already occupied
|
||||||
ports:
|
ports:
|
||||||
- "80:80"
|
- "8003:80"
|
||||||
- "443:443"
|
#- "443:443"
|
||||||
networks:
|
networks:
|
||||||
- invoiceninja
|
- invoiceninja
|
||||||
|
|
||||||
app:
|
app:
|
||||||
image: invoiceninja/invoiceninja:5
|
image: invoiceninja/invoiceninja:5
|
||||||
|
env_file: env
|
||||||
restart: always
|
restart: always
|
||||||
cap_add:
|
cap_add:
|
||||||
- SYS_ADMIN
|
- SYS_ADMIN
|
||||||
environment:
|
|
||||||
- APP_URL=https://localhost
|
|
||||||
- APP_KEY=<INSERT THE GENERATED APPLICATION KEY HERE>
|
|
||||||
- MULTI_DB_ENABLED=false
|
|
||||||
- DB_HOST1=db
|
|
||||||
- DB_USERNAME1=ninja
|
|
||||||
- DB_PASSWORD1=ninja
|
|
||||||
- DB_DATABASE1=ninja
|
|
||||||
- PHANTOMJS_PDF_GENERATION=false
|
|
||||||
- SNAPPDF_EXECUTABLE_PATH="/usr/bin/chromium-browser"
|
|
||||||
volumes:
|
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!
|
# 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
|
- ./config/hosts:/etc/hosts:ro
|
||||||
# - ./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:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
networks:
|
networks:
|
||||||
@@ -57,6 +43,8 @@ services:
|
|||||||
|
|
||||||
db:
|
db:
|
||||||
image: mysql:5
|
image: mysql:5
|
||||||
|
ports:
|
||||||
|
- "3305:3306"
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
- MYSQL_ROOT_PASSWORD=ninjaAdm1nPassword
|
- MYSQL_ROOT_PASSWORD=ninjaAdm1nPassword
|
||||||
@@ -64,9 +52,27 @@ services:
|
|||||||
- MYSQL_PASSWORD=ninja
|
- MYSQL_PASSWORD=ninja
|
||||||
- MYSQL_DATABASE=ninja
|
- MYSQL_DATABASE=ninja
|
||||||
volumes:
|
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!
|
# 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:
|
networks:
|
||||||
- invoiceninja
|
- invoiceninja
|
||||||
|
|
||||||
@@ -89,13 +95,7 @@ services:
|
|||||||
# EOF'
|
# EOF'
|
||||||
# networks:
|
# networks:
|
||||||
# - invoiceninja
|
# - invoiceninja
|
||||||
|
#
|
||||||
volumes:
|
|
||||||
mysql-data:
|
|
||||||
public:
|
|
||||||
storage:
|
|
||||||
# This is needed for letting th cron run correctly
|
|
||||||
# logo:
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
invoiceninja:
|
invoiceninja:
|
||||||
1
docker/app/public/.keep
Normal file
1
docker/app/public/.keep
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
1
docker/app/storage/.keep
Normal file
1
docker/app/storage/.keep
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
Reference in New Issue
Block a user