Added MariaDB to Docker compose for ARM64 (#315)

* Added option to use MariaDB instead of MySQL

* Moved MYSQL environment variables to env file
This commit is contained in:
Thibaut De Muynck
2021-04-06 03:29:04 +02:00
committed by GitHub
parent 4cd773700e
commit 62b1d8cb94
4 changed files with 24 additions and 16 deletions

View File

@@ -2,7 +2,7 @@
[![Docker image, latest](https://img.shields.io/docker/image-size/invoiceninja/invoiceninja/latest?label=latest)](https://hub.docker.com/r/invoiceninja/invoiceninja) [![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) [![Docker image, alpine](https://img.shields.io/docker/image-size/invoiceninja/invoiceninja/alpine?label=alpine)](https://hub.docker.com/r/invoiceninja/invoiceninja)
# Docker for [Invoice Ninja](https://www.invoiceninja.com/) # Docker for [Invoice Ninja](https://www.invoiceninja.com/)
:crown: **Features** :crown: **Features**
@@ -13,11 +13,11 @@
## You want some Kubernetes + Helm with that? ## You want some Kubernetes + Helm with that?
[Helm Chat](https://github.com/Saddamus/invoiceninja-helm) by @Saddamus [Helm Chat](https://github.com/Saddamus/invoiceninja-helm) by @Saddamus
[Kubernetes](https://github.com/invoiceninja/dockerfiles/issues/94) by @spacepluk [Kubernetes](https://github.com/invoiceninja/dockerfiles/issues/94) by @spacepluk
## Quickstart V5 Launch ## Quickstart V5 Launch
The dockerfile has been revamped to make is easier to get started, by default the base image selected in 5 which will pull in the latest v5 stable image. The dockerfile has been revamped to make it easier to get started, by default the base image selected is 5 which will pull in the latest v5 stable image.
```bash ```bash
git clone https://github.com/invoiceninja/dockerfiles.git git clone https://github.com/invoiceninja/dockerfiles.git
@@ -65,7 +65,7 @@ For example, lets say your APP_URL is ```http://in5.test:8000``` and your LAN IP
```192.168.0.124 in5.test``` ```192.168.0.124 in5.test```
**Please note that PDF generation using local host your domain name MUST end in .test for your PDFs to generate correctly, this is a DNS resolver issue with chromium. **Please note that for PDF generation using local host, your domain name MUST end in .test for your PDFs to generate correctly, this is a DNS resolver issue with chromium.
All that is left to do now is bring up the container All that is left to do now is bring up the container
@@ -75,9 +75,13 @@ All that is left to do now is bring up the container
**Note: When performing the setup, the Database host is ```db``` **Note: When performing the setup, the Database host is ```db```
### Running on ARM64 (Raspberry Pi 4)
When deploying on an ARM64 system, you need to comment out the `image: mysql:5` line and uncomment `image: mariadb:10.4` in the `docker-compose.yml` file.
## Updating the Image when using `docker-compose` ## Updating the Image when using `docker-compose`
As `docker-compose` does not support any form of version control, this git provide updates to `docker-compose.yml` directly. As `docker-compose` does not support any form of version control, this git provide updates to `docker-compose.yml` directly.
To upgrade to a newer release image, please make sure to update the `docker-compose.yml` first by running To upgrade to a newer release image, please make sure to update the `docker-compose.yml` first by running

View File

@@ -1,4 +1,6 @@
FROM mysql:5 FROM mysql:5
# When running on ARM64 use MariaDB instead of MySQL
#FROM mariadb:10.4
ENV force_color_prompt yes ENV force_color_prompt yes
RUN apt-get update; RUN apt-get update;
@@ -7,4 +9,4 @@ RUN apt-get install -y cron;
ENTRYPOINT \ ENTRYPOINT \
service cron start; \ service cron start; \
printenv | grep -v "no_proxy" >> /etc/environment; \ printenv | grep -v "no_proxy" >> /etc/environment; \
docker-entrypoint.sh mysqld docker-entrypoint.sh mysqld

View File

@@ -14,7 +14,7 @@ services:
- 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" - "80:80"
#- "443:443" #- "443:443"
networks: networks:
@@ -32,24 +32,22 @@ services:
- ./docker/app/storage:/var/www/app/storage:rw,delegated - ./docker/app/storage:/var/www/app/storage:rw,delegated
depends_on: depends_on:
- db - db
networks: networks:
- invoiceninja - invoiceninja
extra_hosts: extra_hosts:
- "in5.localhost:192.168.0.124 " #host and ip - "in5.localhost:192.168.0.124 " #host and ip
db: db:
image: mysql:5 image: mysql:5
# When running on ARM64 use MariaDB instead of MySQL
# image: mariadb:10.4
# For auto DB backups comment out image and use the build block below # For auto DB backups comment out image and use the build block below
# build: # build:
# context: ./config/mysql # context: ./config/mysql
ports: ports:
- "3305:3306" - "3305:3306"
restart: always restart: always
environment: env_file: env
- MYSQL_ROOT_PASSWORD=ninjaAdm1nPassword
- MYSQL_USER=ninja
- MYSQL_PASSWORD=ninja
- MYSQL_DATABASE=ninja
volumes: volumes:
- ./docker/mysql/data:/var/lib/mysql:rw,delegated - ./docker/mysql/data:/var/lib/mysql:rw,delegated
@@ -82,7 +80,7 @@ services:
# EOF' # EOF'
# networks: # networks:
# - invoiceninja # - invoiceninja
# #
networks: networks:
invoiceninja: invoiceninja:

4
env
View File

@@ -7,6 +7,10 @@ DB_PORT1=3306
DB_USERNAME1=ninja DB_USERNAME1=ninja
DB_PASSWORD1=ninja DB_PASSWORD1=ninja
DB_DATABASE1=ninja DB_DATABASE1=ninja
MYSQL_ROOT_PASSWORD=ninjaAdm1nPassword
MYSQL_USER=ninja
MYSQL_PASSWORD=ninja
MYSQL_DATABASE=ninja
#this is a system variable please do not remove #this is a system variable please do not remove
IS_DOCKER=true IS_DOCKER=true