Add some example of integrations (#44)
* Add some example of integrations Update docker-run.sh to deal with docker secret for some vars. * Update update.sh Fix review * Update .gitignore
This commit is contained in:
@@ -6,12 +6,8 @@ ENV DOLI_INSTALL_AUTO 1
|
||||
|
||||
ENV DOLI_DB_HOST mysql
|
||||
ENV DOLI_DB_HOST_PORT 3306
|
||||
ENV DOLI_DB_USER doli
|
||||
ENV DOLI_DB_PASSWORD doli_pass
|
||||
ENV DOLI_DB_NAME dolidb
|
||||
|
||||
ENV DOLI_ADMIN_LOGIN admin
|
||||
ENV DOLI_ADMIN_PASSWORD admin
|
||||
ENV DOLI_URL_ROOT 'http://localhost'
|
||||
ENV DOLI_NOCSRFCHECK 0
|
||||
|
||||
|
||||
20
README.md
20
README.md
@@ -17,11 +17,11 @@ Docker image for Dolibarr with auto installer on first boot.
|
||||
|
||||
Dolibarr ERP & CRM is a modern software package to manage your organization's activity (contacts, suppliers, invoices, orders, stocks, agenda, ...).
|
||||
|
||||
> [More informations](https://github.com/dolibarr/dolibarr)
|
||||
> [More information](https://github.com/dolibarr/dolibarr)
|
||||
|
||||
## How to run this image ?
|
||||
|
||||
This image is based on the [officiel PHP repository](https://registry.hub.docker.com/_/php/).
|
||||
This image is based on the [official PHP repository](https://registry.hub.docker.com/_/php/).
|
||||
|
||||
**Important**: This image don't contains database. So you need to link it with a database container.
|
||||
|
||||
@@ -56,6 +56,13 @@ services:
|
||||
|
||||
Then run all services `docker-compose up -d`. Now, go to http://0.0.0.0 to access to the new Dolibarr installation.
|
||||
|
||||
### Other examples
|
||||
|
||||
You can find several examples in the `examples` directory, such as:
|
||||
- [Running Dolibarr with a mysql server](./examples/with-mysql/dolibarr-with-mysql.md)
|
||||
- [Running Dolibarr with a Traefik reverse proxy](./examples/with-rp-traefik/dolibarr-with-traefik.md)
|
||||
- [Running Dolibarr with secrets](./examples/with-secrets/dolibarr-with-secrets.md)
|
||||
|
||||
## Upgrading version and migrating DB
|
||||
Remove the `install.lock` file and start an updated version container. Ensure that env `DOLI_INSTALL_AUTO` is set to `1`. It will migrate Database to the new version.
|
||||
|
||||
@@ -70,9 +77,16 @@ Remove the `install.lock` file and start an updated version container. Ensure th
|
||||
| **DOLI_DB_PASSWORD** | *doli_pass* | Database user's password
|
||||
| **DOLI_DB_NAME** | *dolidb* | Database name
|
||||
| **DOLI_ADMIN_LOGIN** | *admin* | Admin's login create on the first boot
|
||||
| **DOLI_ADMIN_PASSWORD** | *admin* | Admin'password
|
||||
| **DOLI_ADMIN_PASSWORD** | *admin* | Admin's password
|
||||
| **DOLI_URL_ROOT** | *http://localhost* | Url root of the Dolibarr installation
|
||||
| **PHP_INI_DATE_TIMEZONE** | *UTC* | Default timezone on PHP
|
||||
| **PHP_INI_MEMORY_LIMIT** | *256M* | PHP Memory limit
|
||||
| **WWW_USER_ID** | | ID of user www-data. ID will not changed if leave empty. During a development, it is very practical to put the same ID as the host user.
|
||||
| **WWW_GROUP_ID** | | ID of group www-data. ID will not changed if leave empty.
|
||||
|
||||
Some environment variables are compatible with docker secrets behaviour, just add the `_FILE` suffix to var name and point the value file to read.
|
||||
Environment variables that are compatible with docker secrets:
|
||||
- `DOLI_DB_USER` => `DOLI_DB_USER_FILE`
|
||||
- `DOLI_DB_PASSWORD` => `DOLI_DB_PASSWORD_FILE`
|
||||
- `DOLI_ADMIN_LOGIN` => `DOLI_ADMIN_LOGIN_FILE`
|
||||
- `DOLI_ADMIN_PASSWORD` => `DOLI_ADMIN_PASSWORD_FILE`
|
||||
|
||||
@@ -9,11 +9,11 @@ Docker image for Dolibarr with auto installer on first boot.
|
||||
|
||||
Dolibarr ERP & CRM is a modern software package to manage your organization's activity (contacts, suppliers, invoices, orders, stocks, agenda, ...).
|
||||
|
||||
> [More informations](https://github.com/dolibarr/dolibarr)
|
||||
> [More information](https://github.com/dolibarr/dolibarr)
|
||||
|
||||
## How to run this image ?
|
||||
|
||||
This image is based on the [officiel PHP repository](https://registry.hub.docker.com/_/php/).
|
||||
This image is based on the [official PHP repository](https://registry.hub.docker.com/_/php/).
|
||||
|
||||
**Important**: This image don't contains database. So you need to link it with a database container.
|
||||
|
||||
@@ -48,6 +48,13 @@ services:
|
||||
|
||||
Then run all services `docker-compose up -d`. Now, go to http://0.0.0.0 to access to the new Dolibarr installation.
|
||||
|
||||
### Other examples
|
||||
|
||||
You can find several examples in the `examples` directory, such as:
|
||||
- [Running Dolibarr with a mysql server](./examples/with-mysql/dolibarr-with-mysql.md)
|
||||
- [Running Dolibarr with a Traefik reverse proxy](./examples/with-rp-traefik/dolibarr-with-traefik.md)
|
||||
- [Running Dolibarr with secrets](./examples/with-secrets/dolibarr-with-secrets.md)
|
||||
|
||||
## Upgrading version and migrating DB
|
||||
Remove the `install.lock` file and start an updated version container. Ensure that env `DOLI_INSTALL_AUTO` is set to `1`. It will migrate Database to the new version.
|
||||
|
||||
@@ -62,9 +69,16 @@ Remove the `install.lock` file and start an updated version container. Ensure th
|
||||
| **DOLI_DB_PASSWORD** | *doli_pass* | Database user's password
|
||||
| **DOLI_DB_NAME** | *dolidb* | Database name
|
||||
| **DOLI_ADMIN_LOGIN** | *admin* | Admin's login create on the first boot
|
||||
| **DOLI_ADMIN_PASSWORD** | *admin* | Admin'password
|
||||
| **DOLI_ADMIN_PASSWORD** | *admin* | Admin's password
|
||||
| **DOLI_URL_ROOT** | *http://localhost* | Url root of the Dolibarr installation
|
||||
| **PHP_INI_DATE_TIMEZONE** | *UTC* | Default timezone on PHP
|
||||
| **PHP_INI_MEMORY_LIMIT** | *256M* | PHP Memory limit
|
||||
| **WWW_USER_ID** | | ID of user www-data. ID will not changed if leave empty. During a development, it is very practical to put the same ID as the host user.
|
||||
| **WWW_GROUP_ID** | | ID of group www-data. ID will not changed if leave empty.
|
||||
|
||||
Some environment variables are compatible with docker secrets behaviour, just add the `_FILE` suffix to var name and point the value file to read.
|
||||
Environment variables that are compatible with docker secrets:
|
||||
- `DOLI_DB_USER` => `DOLI_DB_USER_FILE`
|
||||
- `DOLI_DB_PASSWORD` => `DOLI_DB_PASSWORD_FILE`
|
||||
- `DOLI_ADMIN_LOGIN` => `DOLI_ADMIN_LOGIN_FILE`
|
||||
- `DOLI_ADMIN_PASSWORD` => `DOLI_ADMIN_PASSWORD_FILE`
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
version: '3'
|
||||
# This docker-compose.yml file is used to build and test quickly
|
||||
# a specific version of Dolibarr
|
||||
#
|
||||
@@ -8,18 +7,32 @@ version: '3'
|
||||
# $ docker-compose up
|
||||
#
|
||||
# More informations about Docker-compose : https://docs.docker.com/compose/
|
||||
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
internal-pod:
|
||||
internal: true
|
||||
external-pod:
|
||||
internal: false
|
||||
|
||||
secrets:
|
||||
mysql-user:
|
||||
file: ./examples/with-secrets/secrets/mysql_user.secret
|
||||
mysql-password:
|
||||
file: ./examples/with-secrets/secrets/mysql_password.secret
|
||||
|
||||
services:
|
||||
mariadb:
|
||||
image: mariadb:latest
|
||||
secrets:
|
||||
- mysql-user
|
||||
- mysql-password
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
MYSQL_DATABASE: dolibarr
|
||||
MYSQL_RANDOM_ROOT_PASSWORD: "1"
|
||||
MYSQL_DATABASE: "dolibarr"
|
||||
MYSQL_USER_FILE: "/run/secrets/mysql-user"
|
||||
MYSQL_PASSWORD_FILE: "/run/secrets/mysql-password"
|
||||
networks:
|
||||
- internal-pod
|
||||
|
||||
@@ -27,12 +40,17 @@ services:
|
||||
build:
|
||||
context: ./docker-compose-links/${DOLI_VERSION}${PHP_VERSION}
|
||||
image: tuxgasy/dolibarr:${DOLI_VERSION}${PHP_VERSION}
|
||||
secrets:
|
||||
- mysql-user
|
||||
- mysql-password
|
||||
depends_on:
|
||||
- mariadb
|
||||
environment:
|
||||
DOLI_DB_USER_FILE: "/run/secrets/mysql-user"
|
||||
DOLI_DB_PASSWORD_FILE: "/run/secrets/mysql-password"
|
||||
DOLI_ADMIN_LOGIN: "administrator"
|
||||
DOLI_ADMIN_PASSWORD: "admin456"
|
||||
DOLI_DB_HOST: mariadb
|
||||
DOLI_DB_USER: root
|
||||
DOLI_DB_PASSWORD: root
|
||||
DOLI_DB_NAME: dolibarr
|
||||
DOLI_URL_ROOT: 'http://0.0.0.0'
|
||||
WWW_USER_ID: 1000
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# usage: get_env_value VAR [DEFAULT]
|
||||
# ie: get_env_value '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)
|
||||
function get_env_value() {
|
||||
local varName="${1}"
|
||||
local fileVarName="${varName}_FILE"
|
||||
local defaultValue="${2:-}"
|
||||
|
||||
if [ "${!varName:-}" ] && [ "${!fileVarName:-}" ]; then
|
||||
echo >&2 "error: both ${varName} and ${fileVarName} are set (but are exclusive)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local value="${defaultValue}"
|
||||
if [ "${!varName:-}" ]; then
|
||||
value="${!varName}"
|
||||
elif [ "${!fileVarName:-}" ]; then
|
||||
value="$(< "${!fileVarName}")"
|
||||
fi
|
||||
|
||||
echo ${value}
|
||||
exit 0
|
||||
}
|
||||
|
||||
function initDolibarr()
|
||||
{
|
||||
local CURRENT_UID=$(id -u www-data)
|
||||
@@ -56,6 +81,7 @@ EOF
|
||||
function waitForDataBase()
|
||||
{
|
||||
r=1
|
||||
|
||||
while [[ ${r} -ne 0 ]]; do
|
||||
mysql -u ${DOLI_DB_USER} --protocol tcp -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -P ${DOLI_DB_HOST_PORT} -e "status" > /dev/null 2>&1
|
||||
r=$?
|
||||
@@ -175,6 +201,11 @@ function run()
|
||||
fi
|
||||
}
|
||||
|
||||
DOLI_DB_USER=$(get_env_value 'DOLI_DB_USER' 'doli')
|
||||
DOLI_DB_PASSWORD=$(get_env_value 'DOLI_DB_PASSWORD' 'doli_pass')
|
||||
DOLI_ADMIN_LOGIN=$(get_env_value 'DOLI_ADMIN_LOGIN' 'admin')
|
||||
DOLI_ADMIN_PASSWORD=$(get_env_value 'DOLI_ADMIN_PASSWORD' 'admin')
|
||||
|
||||
run
|
||||
|
||||
set -e
|
||||
|
||||
41
examples/with-mysql/docker-compose.yml
Normal file
41
examples/with-mysql/docker-compose.yml
Normal file
@@ -0,0 +1,41 @@
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
internal-pod:
|
||||
internal: true
|
||||
external-pod:
|
||||
internal: false
|
||||
|
||||
volumes:
|
||||
dolibarr-docs:
|
||||
mysql-data:
|
||||
|
||||
services:
|
||||
dolibarr:
|
||||
image: tuxgasy/dolibarr:latest
|
||||
environment:
|
||||
DOLI_DB_HOST: "mysql"
|
||||
DOLI_DB_HOST_PORT: "3306"
|
||||
DOLI_DB_USER: "dolibarr"
|
||||
DOLI_DB_PASSWORD: "mysupersecretpasswordfordatabase"
|
||||
DOLI_DB_NAME: "dolibarr"
|
||||
DOLI_ADMIN_LOGIN: "admin"
|
||||
DOLI_ADMIN_PASSWORD: "mysuperhypersecretpasswordforadminacount"
|
||||
ports:
|
||||
- 80:80
|
||||
volumes:
|
||||
- dolibarr-docs:/var/www/documents
|
||||
networks:
|
||||
- internal-pod
|
||||
- external-pod
|
||||
|
||||
mysql:
|
||||
image: library/mariadb:latest
|
||||
environment:
|
||||
MYSQL_DATABASE: "dolibarr"
|
||||
MYSQL_USER: "dolibarr"
|
||||
MYSQL_PASSWORD: "mysupersecretpasswordfordatabase"
|
||||
volumes:
|
||||
- mysql-data:/var/lib/mysql
|
||||
networks:
|
||||
- internal-pod
|
||||
3
examples/with-mysql/dolibarr-with-mysql.md
Normal file
3
examples/with-mysql/dolibarr-with-mysql.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Dolibarr with mysql
|
||||
|
||||
Running a Dolibarr instance with a mysql server is a standard behaviour, this examples show you how to describe this architecture in a docker-compose way.
|
||||
28
examples/with-rp-traefik/conf/traefik.yml
Normal file
28
examples/with-rp-traefik/conf/traefik.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
api:
|
||||
dashboard: true
|
||||
debug: true
|
||||
|
||||
entryPoints:
|
||||
traefik:
|
||||
address: ":8080"
|
||||
web:
|
||||
address: ":80"
|
||||
http:
|
||||
redirections:
|
||||
entryPoint:
|
||||
to: websecure
|
||||
scheme: https
|
||||
websecure:
|
||||
address: ":443"
|
||||
|
||||
certificatesResolvers:
|
||||
myresolver:
|
||||
acme:
|
||||
storage: /letsencrypt/acme.json
|
||||
httpChallenge:
|
||||
entryPoint: web
|
||||
|
||||
providers:
|
||||
docker:
|
||||
endpoint: "unix:///var/run/docker.sock"
|
||||
exposedByDefault: false
|
||||
74
examples/with-rp-traefik/docker-compose.yml
Normal file
74
examples/with-rp-traefik/docker-compose.yml
Normal file
@@ -0,0 +1,74 @@
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
proxy-network:
|
||||
name: proxy-network
|
||||
driver: bridge
|
||||
internal: false
|
||||
backend-with-internet:
|
||||
name: backend-with-internet
|
||||
driver: bridge
|
||||
internal: false
|
||||
backend-isolated:
|
||||
name: backend-isolated
|
||||
internal: true
|
||||
|
||||
volumes:
|
||||
dolibarr-docs:
|
||||
mysql-data:
|
||||
traefik-acme:
|
||||
|
||||
services:
|
||||
proxy:
|
||||
image: library/traefik:2.3
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
- 8080:8080
|
||||
volumes:
|
||||
- ./conf/traefik.yml:/etc/traefik/traefik.yml
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- traefik-acme:/letsencrypt/acme.json
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.proxy.rule=PathPrefix(`/api`) || PathPrefix(`/dashboard`)"
|
||||
- "traefik.http.routers.proxy.entrypoints=traefik"
|
||||
- "traefik.http.routers.proxy.service=api@internal"
|
||||
- "traefik.http.routers.proxy.tls=true"
|
||||
- "traefik.http.routers.proxy.tls.certresolver=myresolver"
|
||||
networks:
|
||||
- proxy-network
|
||||
- backend-with-internet
|
||||
- backend-isolated
|
||||
|
||||
dolibarr:
|
||||
image: tuxgasy/dolibarr:latest
|
||||
environment:
|
||||
DOLI_DB_HOST: "mysql"
|
||||
DOLI_DB_USER: "dolibarr"
|
||||
DOLI_DB_PASSWORD: "mysupersecretpasswordfordatabase"
|
||||
DOLI_DB_NAME: "dolibarr"
|
||||
DOLI_ADMIN_LOGIN: "admin"
|
||||
DOLI_ADMIN_PASSWORD: "mysuperhypersecretpasswordforadminacount"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.dolibarr.tls=true"
|
||||
- "traefik.http.routers.dolibarr.rule=Host(`mydolibarr.domain.tld`)"
|
||||
- "traefik.http.services.dolibarr.loadbalancer.server.port=80"
|
||||
- "traefik.http.services.dolibarr.loadbalancer.server.scheme=http"
|
||||
volumes:
|
||||
- dolibarr-docs:/var/www/documents
|
||||
networks:
|
||||
- backend-with-internet
|
||||
- backend-isolated
|
||||
|
||||
mysql:
|
||||
image: library/mariadb:latest
|
||||
environment:
|
||||
MYSQL_DATABASE: "dolibarr"
|
||||
MYSQL_USER: "dolibarr"
|
||||
MYSQL_PASSWORD: "mysupersecretpasswordfordatabase"
|
||||
volumes:
|
||||
- mysql-data:/var/lib/mysql
|
||||
networks:
|
||||
- backend-isolated
|
||||
10
examples/with-rp-traefik/dolibarr-with-traefik.md
Normal file
10
examples/with-rp-traefik/dolibarr-with-traefik.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# Adding a reverse proxy in front of Dolibarr such as Traefik
|
||||
|
||||
The Reverse proxy role is to handle the customer facing : SSL, load balancing, page caching, etc...
|
||||
Traefik is a reverse proxy light, fast and reliable.
|
||||
Here is the documentation for Traefik: https://doc.traefik.io/traefik/
|
||||
|
||||
## Networking
|
||||
- The proxy is facing the customer and providing the SSL support in front of Dolibarr.
|
||||
- The mysql server is isolated from the internet.
|
||||
- Dolibarr needs internet access for some feature (mail, update checks, SIRET checks, etc..)
|
||||
59
examples/with-secrets/docker-compose.yml
Normal file
59
examples/with-secrets/docker-compose.yml
Normal file
@@ -0,0 +1,59 @@
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
internal-pod:
|
||||
internal: true
|
||||
external-pod:
|
||||
internal: false
|
||||
|
||||
volumes:
|
||||
dolibarr-docs:
|
||||
mysql-data:
|
||||
|
||||
secrets:
|
||||
mysql-user:
|
||||
file: ./secrets/mysql_user.secret
|
||||
mysql-password:
|
||||
file: ./secrets/mysql_password.secret
|
||||
dolibarr-admin-user:
|
||||
file: ./secrets/dolibarr_admin_username.secret
|
||||
dolibarr-admin-password:
|
||||
file: ./secrets/dolibarr_admin_password.secret
|
||||
|
||||
services:
|
||||
dolibarr:
|
||||
image: tuxgasy/dolibarr:latest
|
||||
secrets:
|
||||
- dolibarr-admin-user
|
||||
- dolibarr-admin-password
|
||||
- mysql-user
|
||||
- mysql-password
|
||||
env_file:
|
||||
- ./env/dolibarr.env
|
||||
environment:
|
||||
DOLI_DB_USER_FILE: "/run/secrets/mysql-user"
|
||||
DOLI_DB_PASSWORD_FILE: "/run/secrets/mysql-password"
|
||||
DOLI_ADMIN_LOGIN_FILE: "/run/secrets/dolibarr-admin-user"
|
||||
DOLI_ADMIN_PASSWORD_FILE: "/run/secrets/dolibarr-admin-password"
|
||||
ports:
|
||||
- 80:80
|
||||
volumes:
|
||||
- dolibarr-docs:/var/www/documents
|
||||
networks:
|
||||
- internal-pod
|
||||
- external-pod
|
||||
|
||||
mysql:
|
||||
image: library/mariadb:latest
|
||||
secrets:
|
||||
- mysql-user
|
||||
- mysql-password
|
||||
env_file:
|
||||
- ./env/mysql.env
|
||||
environment:
|
||||
MYSQL_USER_FILE: "/run/secrets/mysql-user"
|
||||
MYSQL_PASSWORD_FILE: "/run/secrets/mysql-password"
|
||||
volumes:
|
||||
- mysql-data:/var/lib/mysql
|
||||
networks:
|
||||
- internal-pod
|
||||
8
examples/with-secrets/dolibarr-with-secrets.md
Normal file
8
examples/with-secrets/dolibarr-with-secrets.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# Running a dolibarr instance with secrets
|
||||
|
||||
The docker-compose secrets are an important feature in terms of securing and industrializing deployments.
|
||||
Be sure to never commit your own secrets to a repository, and keep them ... secrets ^_^.
|
||||
|
||||
Files are committed here, but it's an example.
|
||||
|
||||
Here is the doc from docker : https://docs.docker.com/engine/swarm/secrets/
|
||||
10
examples/with-secrets/env/dolibarr.env
vendored
Normal file
10
examples/with-secrets/env/dolibarr.env
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
DOLI_INSTALL_AUTO=1
|
||||
DOLI_DB_HOST=mysql
|
||||
DOLI_DB_HOST_PORT=3306
|
||||
DOLI_DB_NAME=dolibarr
|
||||
DOLI_URL_ROOT=http://localhost
|
||||
DOLI_NOCSRFCHECK=0
|
||||
WWW_USER_ID=33
|
||||
WWW_GROUP_ID=33
|
||||
PHP_INI_DATE_TIMEZONE=UTC
|
||||
PHP_INI_MEMORY_LIMIT=256M
|
||||
2
examples/with-secrets/env/mysql.env
vendored
Normal file
2
examples/with-secrets/env/mysql.env
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
MYSQL_DATABASE=dolibarr
|
||||
MYSQL_RANDOM_ROOT_PASSWORD=1
|
||||
@@ -0,0 +1 @@
|
||||
mysuperhypersecretpasswordforadminacount
|
||||
@@ -0,0 +1 @@
|
||||
admin
|
||||
1
examples/with-secrets/secrets/mysql_password.secret
Normal file
1
examples/with-secrets/secrets/mysql_password.secret
Normal file
@@ -0,0 +1 @@
|
||||
mysupersecretpasswordfordatabase
|
||||
1
examples/with-secrets/secrets/mysql_user.secret
Normal file
1
examples/with-secrets/secrets/mysql_user.secret
Normal file
@@ -0,0 +1 @@
|
||||
dolibarr
|
||||
@@ -6,12 +6,8 @@ ENV DOLI_INSTALL_AUTO 1
|
||||
|
||||
ENV DOLI_DB_HOST mysql
|
||||
ENV DOLI_DB_HOST_PORT 3306
|
||||
ENV DOLI_DB_USER doli
|
||||
ENV DOLI_DB_PASSWORD doli_pass
|
||||
ENV DOLI_DB_NAME dolidb
|
||||
|
||||
ENV DOLI_ADMIN_LOGIN admin
|
||||
ENV DOLI_ADMIN_PASSWORD admin
|
||||
ENV DOLI_URL_ROOT 'http://localhost'
|
||||
ENV DOLI_NOCSRFCHECK 0
|
||||
|
||||
@@ -51,6 +47,8 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
|
||||
mkdir -p /var/www/documents && \
|
||||
chown -R www-data:www-data /var/www
|
||||
|
||||
RUN rm -rf /var/lib/apt/lists/*
|
||||
|
||||
EXPOSE 80
|
||||
VOLUME /var/www/documents
|
||||
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# usage: get_env_value VAR [DEFAULT]
|
||||
# ie: get_env_value '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)
|
||||
function get_env_value() {
|
||||
local varName="${1}"
|
||||
local fileVarName="${varName}_FILE"
|
||||
local defaultValue="${2:-}"
|
||||
|
||||
if [ "${!varName:-}" ] && [ "${!fileVarName:-}" ]; then
|
||||
echo >&2 "error: both ${varName} and ${fileVarName} are set (but are exclusive)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local value="${defaultValue}"
|
||||
if [ "${!varName:-}" ]; then
|
||||
value="${!varName}"
|
||||
elif [ "${!fileVarName:-}" ]; then
|
||||
value="$(< "${!fileVarName}")"
|
||||
fi
|
||||
|
||||
echo ${value}
|
||||
exit 0
|
||||
}
|
||||
|
||||
function initDolibarr()
|
||||
{
|
||||
local CURRENT_UID=$(id -u www-data)
|
||||
@@ -56,6 +81,7 @@ EOF
|
||||
function waitForDataBase()
|
||||
{
|
||||
r=1
|
||||
|
||||
while [[ ${r} -ne 0 ]]; do
|
||||
mysql -u ${DOLI_DB_USER} --protocol tcp -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -e "status" > /dev/null 2>&1
|
||||
r=$?
|
||||
@@ -175,6 +201,11 @@ function run()
|
||||
fi
|
||||
}
|
||||
|
||||
DOLI_DB_USER=$(get_env_value 'DOLI_DB_USER' 'doli')
|
||||
DOLI_DB_PASSWORD=$(get_env_value 'DOLI_DB_PASSWORD' 'doli_pass')
|
||||
DOLI_ADMIN_LOGIN=$(get_env_value 'DOLI_ADMIN_LOGIN' 'admin')
|
||||
DOLI_ADMIN_PASSWORD=$(get_env_value 'DOLI_ADMIN_PASSWORD' 'admin')
|
||||
|
||||
run
|
||||
|
||||
set -e
|
||||
|
||||
@@ -6,12 +6,8 @@ ENV DOLI_INSTALL_AUTO 1
|
||||
|
||||
ENV DOLI_DB_HOST mysql
|
||||
ENV DOLI_DB_HOST_PORT 3306
|
||||
ENV DOLI_DB_USER doli
|
||||
ENV DOLI_DB_PASSWORD doli_pass
|
||||
ENV DOLI_DB_NAME dolidb
|
||||
|
||||
ENV DOLI_ADMIN_LOGIN admin
|
||||
ENV DOLI_ADMIN_PASSWORD admin
|
||||
ENV DOLI_URL_ROOT 'http://localhost'
|
||||
ENV DOLI_NOCSRFCHECK 0
|
||||
|
||||
@@ -51,6 +47,8 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
|
||||
mkdir -p /var/www/documents && \
|
||||
chown -R www-data:www-data /var/www
|
||||
|
||||
RUN rm -rf /var/lib/apt/lists/*
|
||||
|
||||
EXPOSE 80
|
||||
VOLUME /var/www/documents
|
||||
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# usage: get_env_value VAR [DEFAULT]
|
||||
# ie: get_env_value '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)
|
||||
function get_env_value() {
|
||||
local varName="${1}"
|
||||
local fileVarName="${varName}_FILE"
|
||||
local defaultValue="${2:-}"
|
||||
|
||||
if [ "${!varName:-}" ] && [ "${!fileVarName:-}" ]; then
|
||||
echo >&2 "error: both ${varName} and ${fileVarName} are set (but are exclusive)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local value="${defaultValue}"
|
||||
if [ "${!varName:-}" ]; then
|
||||
value="${!varName}"
|
||||
elif [ "${!fileVarName:-}" ]; then
|
||||
value="$(< "${!fileVarName}")"
|
||||
fi
|
||||
|
||||
echo ${value}
|
||||
exit 0
|
||||
}
|
||||
|
||||
function initDolibarr()
|
||||
{
|
||||
local CURRENT_UID=$(id -u www-data)
|
||||
@@ -56,6 +81,7 @@ EOF
|
||||
function waitForDataBase()
|
||||
{
|
||||
r=1
|
||||
|
||||
while [[ ${r} -ne 0 ]]; do
|
||||
mysql -u ${DOLI_DB_USER} --protocol tcp -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -e "status" > /dev/null 2>&1
|
||||
r=$?
|
||||
@@ -175,6 +201,11 @@ function run()
|
||||
fi
|
||||
}
|
||||
|
||||
DOLI_DB_USER=$(get_env_value 'DOLI_DB_USER' 'doli')
|
||||
DOLI_DB_PASSWORD=$(get_env_value 'DOLI_DB_PASSWORD' 'doli_pass')
|
||||
DOLI_ADMIN_LOGIN=$(get_env_value 'DOLI_ADMIN_LOGIN' 'admin')
|
||||
DOLI_ADMIN_PASSWORD=$(get_env_value 'DOLI_ADMIN_PASSWORD' 'admin')
|
||||
|
||||
run
|
||||
|
||||
set -e
|
||||
|
||||
@@ -6,12 +6,8 @@ ENV DOLI_INSTALL_AUTO 1
|
||||
|
||||
ENV DOLI_DB_HOST mysql
|
||||
ENV DOLI_DB_HOST_PORT 3306
|
||||
ENV DOLI_DB_USER doli
|
||||
ENV DOLI_DB_PASSWORD doli_pass
|
||||
ENV DOLI_DB_NAME dolidb
|
||||
|
||||
ENV DOLI_ADMIN_LOGIN admin
|
||||
ENV DOLI_ADMIN_PASSWORD admin
|
||||
ENV DOLI_URL_ROOT 'http://localhost'
|
||||
ENV DOLI_NOCSRFCHECK 0
|
||||
|
||||
@@ -51,6 +47,8 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
|
||||
mkdir -p /var/www/documents && \
|
||||
chown -R www-data:www-data /var/www
|
||||
|
||||
RUN rm -rf /var/lib/apt/lists/*
|
||||
|
||||
EXPOSE 80
|
||||
VOLUME /var/www/documents
|
||||
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# usage: get_env_value VAR [DEFAULT]
|
||||
# ie: get_env_value '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)
|
||||
function get_env_value() {
|
||||
local varName="${1}"
|
||||
local fileVarName="${varName}_FILE"
|
||||
local defaultValue="${2:-}"
|
||||
|
||||
if [ "${!varName:-}" ] && [ "${!fileVarName:-}" ]; then
|
||||
echo >&2 "error: both ${varName} and ${fileVarName} are set (but are exclusive)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local value="${defaultValue}"
|
||||
if [ "${!varName:-}" ]; then
|
||||
value="${!varName}"
|
||||
elif [ "${!fileVarName:-}" ]; then
|
||||
value="$(< "${!fileVarName}")"
|
||||
fi
|
||||
|
||||
echo ${value}
|
||||
exit 0
|
||||
}
|
||||
|
||||
function initDolibarr()
|
||||
{
|
||||
local CURRENT_UID=$(id -u www-data)
|
||||
@@ -56,6 +81,7 @@ EOF
|
||||
function waitForDataBase()
|
||||
{
|
||||
r=1
|
||||
|
||||
while [[ ${r} -ne 0 ]]; do
|
||||
mysql -u ${DOLI_DB_USER} --protocol tcp -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -e "status" > /dev/null 2>&1
|
||||
r=$?
|
||||
@@ -175,6 +201,11 @@ function run()
|
||||
fi
|
||||
}
|
||||
|
||||
DOLI_DB_USER=$(get_env_value 'DOLI_DB_USER' 'doli')
|
||||
DOLI_DB_PASSWORD=$(get_env_value 'DOLI_DB_PASSWORD' 'doli_pass')
|
||||
DOLI_ADMIN_LOGIN=$(get_env_value 'DOLI_ADMIN_LOGIN' 'admin')
|
||||
DOLI_ADMIN_PASSWORD=$(get_env_value 'DOLI_ADMIN_PASSWORD' 'admin')
|
||||
|
||||
run
|
||||
|
||||
set -e
|
||||
|
||||
@@ -6,12 +6,8 @@ ENV DOLI_INSTALL_AUTO 1
|
||||
|
||||
ENV DOLI_DB_HOST mysql
|
||||
ENV DOLI_DB_HOST_PORT 3306
|
||||
ENV DOLI_DB_USER doli
|
||||
ENV DOLI_DB_PASSWORD doli_pass
|
||||
ENV DOLI_DB_NAME dolidb
|
||||
|
||||
ENV DOLI_ADMIN_LOGIN admin
|
||||
ENV DOLI_ADMIN_PASSWORD admin
|
||||
ENV DOLI_URL_ROOT 'http://localhost'
|
||||
ENV DOLI_NOCSRFCHECK 0
|
||||
|
||||
@@ -51,6 +47,8 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
|
||||
mkdir -p /var/www/documents && \
|
||||
chown -R www-data:www-data /var/www
|
||||
|
||||
RUN rm -rf /var/lib/apt/lists/*
|
||||
|
||||
EXPOSE 80
|
||||
VOLUME /var/www/documents
|
||||
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# usage: get_env_value VAR [DEFAULT]
|
||||
# ie: get_env_value '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)
|
||||
function get_env_value() {
|
||||
local varName="${1}"
|
||||
local fileVarName="${varName}_FILE"
|
||||
local defaultValue="${2:-}"
|
||||
|
||||
if [ "${!varName:-}" ] && [ "${!fileVarName:-}" ]; then
|
||||
echo >&2 "error: both ${varName} and ${fileVarName} are set (but are exclusive)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local value="${defaultValue}"
|
||||
if [ "${!varName:-}" ]; then
|
||||
value="${!varName}"
|
||||
elif [ "${!fileVarName:-}" ]; then
|
||||
value="$(< "${!fileVarName}")"
|
||||
fi
|
||||
|
||||
echo ${value}
|
||||
exit 0
|
||||
}
|
||||
|
||||
function initDolibarr()
|
||||
{
|
||||
local CURRENT_UID=$(id -u www-data)
|
||||
@@ -56,6 +81,7 @@ EOF
|
||||
function waitForDataBase()
|
||||
{
|
||||
r=1
|
||||
|
||||
while [[ ${r} -ne 0 ]]; do
|
||||
mysql -u ${DOLI_DB_USER} --protocol tcp -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -e "status" > /dev/null 2>&1
|
||||
r=$?
|
||||
@@ -175,6 +201,11 @@ function run()
|
||||
fi
|
||||
}
|
||||
|
||||
DOLI_DB_USER=$(get_env_value 'DOLI_DB_USER' 'doli')
|
||||
DOLI_DB_PASSWORD=$(get_env_value 'DOLI_DB_PASSWORD' 'doli_pass')
|
||||
DOLI_ADMIN_LOGIN=$(get_env_value 'DOLI_ADMIN_LOGIN' 'admin')
|
||||
DOLI_ADMIN_PASSWORD=$(get_env_value 'DOLI_ADMIN_PASSWORD' 'admin')
|
||||
|
||||
run
|
||||
|
||||
set -e
|
||||
|
||||
@@ -6,12 +6,8 @@ ENV DOLI_INSTALL_AUTO 1
|
||||
|
||||
ENV DOLI_DB_HOST mysql
|
||||
ENV DOLI_DB_HOST_PORT 3306
|
||||
ENV DOLI_DB_USER doli
|
||||
ENV DOLI_DB_PASSWORD doli_pass
|
||||
ENV DOLI_DB_NAME dolidb
|
||||
|
||||
ENV DOLI_ADMIN_LOGIN admin
|
||||
ENV DOLI_ADMIN_PASSWORD admin
|
||||
ENV DOLI_URL_ROOT 'http://localhost'
|
||||
ENV DOLI_NOCSRFCHECK 0
|
||||
|
||||
@@ -51,6 +47,8 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
|
||||
mkdir -p /var/www/documents && \
|
||||
chown -R www-data:www-data /var/www
|
||||
|
||||
RUN rm -rf /var/lib/apt/lists/*
|
||||
|
||||
EXPOSE 80
|
||||
VOLUME /var/www/documents
|
||||
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# usage: get_env_value VAR [DEFAULT]
|
||||
# ie: get_env_value '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)
|
||||
function get_env_value() {
|
||||
local varName="${1}"
|
||||
local fileVarName="${varName}_FILE"
|
||||
local defaultValue="${2:-}"
|
||||
|
||||
if [ "${!varName:-}" ] && [ "${!fileVarName:-}" ]; then
|
||||
echo >&2 "error: both ${varName} and ${fileVarName} are set (but are exclusive)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local value="${defaultValue}"
|
||||
if [ "${!varName:-}" ]; then
|
||||
value="${!varName}"
|
||||
elif [ "${!fileVarName:-}" ]; then
|
||||
value="$(< "${!fileVarName}")"
|
||||
fi
|
||||
|
||||
echo ${value}
|
||||
exit 0
|
||||
}
|
||||
|
||||
function initDolibarr()
|
||||
{
|
||||
local CURRENT_UID=$(id -u www-data)
|
||||
@@ -56,6 +81,7 @@ EOF
|
||||
function waitForDataBase()
|
||||
{
|
||||
r=1
|
||||
|
||||
while [[ ${r} -ne 0 ]]; do
|
||||
mysql -u ${DOLI_DB_USER} --protocol tcp -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -e "status" > /dev/null 2>&1
|
||||
r=$?
|
||||
@@ -175,6 +201,11 @@ function run()
|
||||
fi
|
||||
}
|
||||
|
||||
DOLI_DB_USER=$(get_env_value 'DOLI_DB_USER' 'doli')
|
||||
DOLI_DB_PASSWORD=$(get_env_value 'DOLI_DB_PASSWORD' 'doli_pass')
|
||||
DOLI_ADMIN_LOGIN=$(get_env_value 'DOLI_ADMIN_LOGIN' 'admin')
|
||||
DOLI_ADMIN_PASSWORD=$(get_env_value 'DOLI_ADMIN_PASSWORD' 'admin')
|
||||
|
||||
run
|
||||
|
||||
set -e
|
||||
|
||||
@@ -6,12 +6,8 @@ ENV DOLI_INSTALL_AUTO 1
|
||||
|
||||
ENV DOLI_DB_HOST mysql
|
||||
ENV DOLI_DB_HOST_PORT 3306
|
||||
ENV DOLI_DB_USER doli
|
||||
ENV DOLI_DB_PASSWORD doli_pass
|
||||
ENV DOLI_DB_NAME dolidb
|
||||
|
||||
ENV DOLI_ADMIN_LOGIN admin
|
||||
ENV DOLI_ADMIN_PASSWORD admin
|
||||
ENV DOLI_URL_ROOT 'http://localhost'
|
||||
ENV DOLI_NOCSRFCHECK 0
|
||||
|
||||
@@ -51,6 +47,8 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
|
||||
mkdir -p /var/www/documents && \
|
||||
chown -R www-data:www-data /var/www
|
||||
|
||||
RUN rm -rf /var/lib/apt/lists/*
|
||||
|
||||
EXPOSE 80
|
||||
VOLUME /var/www/documents
|
||||
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# usage: get_env_value VAR [DEFAULT]
|
||||
# ie: get_env_value '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)
|
||||
function get_env_value() {
|
||||
local varName="${1}"
|
||||
local fileVarName="${varName}_FILE"
|
||||
local defaultValue="${2:-}"
|
||||
|
||||
if [ "${!varName:-}" ] && [ "${!fileVarName:-}" ]; then
|
||||
echo >&2 "error: both ${varName} and ${fileVarName} are set (but are exclusive)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local value="${defaultValue}"
|
||||
if [ "${!varName:-}" ]; then
|
||||
value="${!varName}"
|
||||
elif [ "${!fileVarName:-}" ]; then
|
||||
value="$(< "${!fileVarName}")"
|
||||
fi
|
||||
|
||||
echo ${value}
|
||||
exit 0
|
||||
}
|
||||
|
||||
function initDolibarr()
|
||||
{
|
||||
local CURRENT_UID=$(id -u www-data)
|
||||
@@ -56,6 +81,7 @@ EOF
|
||||
function waitForDataBase()
|
||||
{
|
||||
r=1
|
||||
|
||||
while [[ ${r} -ne 0 ]]; do
|
||||
mysql -u ${DOLI_DB_USER} --protocol tcp -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -e "status" > /dev/null 2>&1
|
||||
r=$?
|
||||
@@ -175,6 +201,11 @@ function run()
|
||||
fi
|
||||
}
|
||||
|
||||
DOLI_DB_USER=$(get_env_value 'DOLI_DB_USER' 'doli')
|
||||
DOLI_DB_PASSWORD=$(get_env_value 'DOLI_DB_PASSWORD' 'doli_pass')
|
||||
DOLI_ADMIN_LOGIN=$(get_env_value 'DOLI_ADMIN_LOGIN' 'admin')
|
||||
DOLI_ADMIN_PASSWORD=$(get_env_value 'DOLI_ADMIN_PASSWORD' 'admin')
|
||||
|
||||
run
|
||||
|
||||
set -e
|
||||
|
||||
@@ -6,12 +6,8 @@ ENV DOLI_INSTALL_AUTO 1
|
||||
|
||||
ENV DOLI_DB_HOST mysql
|
||||
ENV DOLI_DB_HOST_PORT 3306
|
||||
ENV DOLI_DB_USER doli
|
||||
ENV DOLI_DB_PASSWORD doli_pass
|
||||
ENV DOLI_DB_NAME dolidb
|
||||
|
||||
ENV DOLI_ADMIN_LOGIN admin
|
||||
ENV DOLI_ADMIN_PASSWORD admin
|
||||
ENV DOLI_URL_ROOT 'http://localhost'
|
||||
ENV DOLI_NOCSRFCHECK 0
|
||||
|
||||
@@ -51,6 +47,8 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
|
||||
mkdir -p /var/www/documents && \
|
||||
chown -R www-data:www-data /var/www
|
||||
|
||||
RUN rm -rf /var/lib/apt/lists/*
|
||||
|
||||
EXPOSE 80
|
||||
VOLUME /var/www/documents
|
||||
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# usage: get_env_value VAR [DEFAULT]
|
||||
# ie: get_env_value '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)
|
||||
function get_env_value() {
|
||||
local varName="${1}"
|
||||
local fileVarName="${varName}_FILE"
|
||||
local defaultValue="${2:-}"
|
||||
|
||||
if [ "${!varName:-}" ] && [ "${!fileVarName:-}" ]; then
|
||||
echo >&2 "error: both ${varName} and ${fileVarName} are set (but are exclusive)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local value="${defaultValue}"
|
||||
if [ "${!varName:-}" ]; then
|
||||
value="${!varName}"
|
||||
elif [ "${!fileVarName:-}" ]; then
|
||||
value="$(< "${!fileVarName}")"
|
||||
fi
|
||||
|
||||
echo ${value}
|
||||
exit 0
|
||||
}
|
||||
|
||||
function initDolibarr()
|
||||
{
|
||||
local CURRENT_UID=$(id -u www-data)
|
||||
@@ -56,6 +81,7 @@ EOF
|
||||
function waitForDataBase()
|
||||
{
|
||||
r=1
|
||||
|
||||
while [[ ${r} -ne 0 ]]; do
|
||||
mysql -u ${DOLI_DB_USER} --protocol tcp -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -e "status" > /dev/null 2>&1
|
||||
r=$?
|
||||
@@ -175,6 +201,11 @@ function run()
|
||||
fi
|
||||
}
|
||||
|
||||
DOLI_DB_USER=$(get_env_value 'DOLI_DB_USER' 'doli')
|
||||
DOLI_DB_PASSWORD=$(get_env_value 'DOLI_DB_PASSWORD' 'doli_pass')
|
||||
DOLI_ADMIN_LOGIN=$(get_env_value 'DOLI_ADMIN_LOGIN' 'admin')
|
||||
DOLI_ADMIN_PASSWORD=$(get_env_value 'DOLI_ADMIN_PASSWORD' 'admin')
|
||||
|
||||
run
|
||||
|
||||
set -e
|
||||
|
||||
@@ -6,12 +6,8 @@ ENV DOLI_INSTALL_AUTO 1
|
||||
|
||||
ENV DOLI_DB_HOST mysql
|
||||
ENV DOLI_DB_HOST_PORT 3306
|
||||
ENV DOLI_DB_USER doli
|
||||
ENV DOLI_DB_PASSWORD doli_pass
|
||||
ENV DOLI_DB_NAME dolidb
|
||||
|
||||
ENV DOLI_ADMIN_LOGIN admin
|
||||
ENV DOLI_ADMIN_PASSWORD admin
|
||||
ENV DOLI_URL_ROOT 'http://localhost'
|
||||
ENV DOLI_NOCSRFCHECK 0
|
||||
|
||||
@@ -51,6 +47,8 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
|
||||
mkdir -p /var/www/documents && \
|
||||
chown -R www-data:www-data /var/www
|
||||
|
||||
RUN rm -rf /var/lib/apt/lists/*
|
||||
|
||||
EXPOSE 80
|
||||
VOLUME /var/www/documents
|
||||
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# usage: get_env_value VAR [DEFAULT]
|
||||
# ie: get_env_value '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)
|
||||
function get_env_value() {
|
||||
local varName="${1}"
|
||||
local fileVarName="${varName}_FILE"
|
||||
local defaultValue="${2:-}"
|
||||
|
||||
if [ "${!varName:-}" ] && [ "${!fileVarName:-}" ]; then
|
||||
echo >&2 "error: both ${varName} and ${fileVarName} are set (but are exclusive)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local value="${defaultValue}"
|
||||
if [ "${!varName:-}" ]; then
|
||||
value="${!varName}"
|
||||
elif [ "${!fileVarName:-}" ]; then
|
||||
value="$(< "${!fileVarName}")"
|
||||
fi
|
||||
|
||||
echo ${value}
|
||||
exit 0
|
||||
}
|
||||
|
||||
function initDolibarr()
|
||||
{
|
||||
local CURRENT_UID=$(id -u www-data)
|
||||
@@ -56,6 +81,7 @@ EOF
|
||||
function waitForDataBase()
|
||||
{
|
||||
r=1
|
||||
|
||||
while [[ ${r} -ne 0 ]]; do
|
||||
mysql -u ${DOLI_DB_USER} --protocol tcp -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -e "status" > /dev/null 2>&1
|
||||
r=$?
|
||||
@@ -175,6 +201,11 @@ function run()
|
||||
fi
|
||||
}
|
||||
|
||||
DOLI_DB_USER=$(get_env_value 'DOLI_DB_USER' 'doli')
|
||||
DOLI_DB_PASSWORD=$(get_env_value 'DOLI_DB_PASSWORD' 'doli_pass')
|
||||
DOLI_ADMIN_LOGIN=$(get_env_value 'DOLI_ADMIN_LOGIN' 'admin')
|
||||
DOLI_ADMIN_PASSWORD=$(get_env_value 'DOLI_ADMIN_PASSWORD' 'admin')
|
||||
|
||||
run
|
||||
|
||||
set -e
|
||||
|
||||
@@ -6,12 +6,8 @@ ENV DOLI_INSTALL_AUTO 1
|
||||
|
||||
ENV DOLI_DB_HOST mysql
|
||||
ENV DOLI_DB_HOST_PORT 3306
|
||||
ENV DOLI_DB_USER doli
|
||||
ENV DOLI_DB_PASSWORD doli_pass
|
||||
ENV DOLI_DB_NAME dolidb
|
||||
|
||||
ENV DOLI_ADMIN_LOGIN admin
|
||||
ENV DOLI_ADMIN_PASSWORD admin
|
||||
ENV DOLI_URL_ROOT 'http://localhost'
|
||||
ENV DOLI_NOCSRFCHECK 0
|
||||
|
||||
@@ -51,6 +47,8 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
|
||||
mkdir -p /var/www/documents && \
|
||||
chown -R www-data:www-data /var/www
|
||||
|
||||
RUN rm -rf /var/lib/apt/lists/*
|
||||
|
||||
EXPOSE 80
|
||||
VOLUME /var/www/documents
|
||||
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# usage: get_env_value VAR [DEFAULT]
|
||||
# ie: get_env_value '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)
|
||||
function get_env_value() {
|
||||
local varName="${1}"
|
||||
local fileVarName="${varName}_FILE"
|
||||
local defaultValue="${2:-}"
|
||||
|
||||
if [ "${!varName:-}" ] && [ "${!fileVarName:-}" ]; then
|
||||
echo >&2 "error: both ${varName} and ${fileVarName} are set (but are exclusive)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local value="${defaultValue}"
|
||||
if [ "${!varName:-}" ]; then
|
||||
value="${!varName}"
|
||||
elif [ "${!fileVarName:-}" ]; then
|
||||
value="$(< "${!fileVarName}")"
|
||||
fi
|
||||
|
||||
echo ${value}
|
||||
exit 0
|
||||
}
|
||||
|
||||
function initDolibarr()
|
||||
{
|
||||
local CURRENT_UID=$(id -u www-data)
|
||||
@@ -56,6 +81,7 @@ EOF
|
||||
function waitForDataBase()
|
||||
{
|
||||
r=1
|
||||
|
||||
while [[ ${r} -ne 0 ]]; do
|
||||
mysql -u ${DOLI_DB_USER} --protocol tcp -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -e "status" > /dev/null 2>&1
|
||||
r=$?
|
||||
@@ -175,6 +201,11 @@ function run()
|
||||
fi
|
||||
}
|
||||
|
||||
DOLI_DB_USER=$(get_env_value 'DOLI_DB_USER' 'doli')
|
||||
DOLI_DB_PASSWORD=$(get_env_value 'DOLI_DB_PASSWORD' 'doli_pass')
|
||||
DOLI_ADMIN_LOGIN=$(get_env_value 'DOLI_ADMIN_LOGIN' 'admin')
|
||||
DOLI_ADMIN_PASSWORD=$(get_env_value 'DOLI_ADMIN_PASSWORD' 'admin')
|
||||
|
||||
run
|
||||
|
||||
set -e
|
||||
|
||||
@@ -6,12 +6,8 @@ ENV DOLI_INSTALL_AUTO 1
|
||||
|
||||
ENV DOLI_DB_HOST mysql
|
||||
ENV DOLI_DB_HOST_PORT 3306
|
||||
ENV DOLI_DB_USER doli
|
||||
ENV DOLI_DB_PASSWORD doli_pass
|
||||
ENV DOLI_DB_NAME dolidb
|
||||
|
||||
ENV DOLI_ADMIN_LOGIN admin
|
||||
ENV DOLI_ADMIN_PASSWORD admin
|
||||
ENV DOLI_URL_ROOT 'http://localhost'
|
||||
ENV DOLI_NOCSRFCHECK 0
|
||||
|
||||
@@ -51,6 +47,8 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
|
||||
mkdir -p /var/www/documents && \
|
||||
chown -R www-data:www-data /var/www
|
||||
|
||||
RUN rm -rf /var/lib/apt/lists/*
|
||||
|
||||
EXPOSE 80
|
||||
VOLUME /var/www/documents
|
||||
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# usage: get_env_value VAR [DEFAULT]
|
||||
# ie: get_env_value '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)
|
||||
function get_env_value() {
|
||||
local varName="${1}"
|
||||
local fileVarName="${varName}_FILE"
|
||||
local defaultValue="${2:-}"
|
||||
|
||||
if [ "${!varName:-}" ] && [ "${!fileVarName:-}" ]; then
|
||||
echo >&2 "error: both ${varName} and ${fileVarName} are set (but are exclusive)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local value="${defaultValue}"
|
||||
if [ "${!varName:-}" ]; then
|
||||
value="${!varName}"
|
||||
elif [ "${!fileVarName:-}" ]; then
|
||||
value="$(< "${!fileVarName}")"
|
||||
fi
|
||||
|
||||
echo ${value}
|
||||
exit 0
|
||||
}
|
||||
|
||||
function initDolibarr()
|
||||
{
|
||||
local CURRENT_UID=$(id -u www-data)
|
||||
@@ -56,6 +81,7 @@ EOF
|
||||
function waitForDataBase()
|
||||
{
|
||||
r=1
|
||||
|
||||
while [[ ${r} -ne 0 ]]; do
|
||||
mysql -u ${DOLI_DB_USER} --protocol tcp -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -e "status" > /dev/null 2>&1
|
||||
r=$?
|
||||
@@ -175,6 +201,11 @@ function run()
|
||||
fi
|
||||
}
|
||||
|
||||
DOLI_DB_USER=$(get_env_value 'DOLI_DB_USER' 'doli')
|
||||
DOLI_DB_PASSWORD=$(get_env_value 'DOLI_DB_PASSWORD' 'doli_pass')
|
||||
DOLI_ADMIN_LOGIN=$(get_env_value 'DOLI_ADMIN_LOGIN' 'admin')
|
||||
DOLI_ADMIN_PASSWORD=$(get_env_value 'DOLI_ADMIN_PASSWORD' 'admin')
|
||||
|
||||
run
|
||||
|
||||
set -e
|
||||
|
||||
@@ -6,12 +6,8 @@ ENV DOLI_INSTALL_AUTO 1
|
||||
|
||||
ENV DOLI_DB_HOST mysql
|
||||
ENV DOLI_DB_HOST_PORT 3306
|
||||
ENV DOLI_DB_USER doli
|
||||
ENV DOLI_DB_PASSWORD doli_pass
|
||||
ENV DOLI_DB_NAME dolidb
|
||||
|
||||
ENV DOLI_ADMIN_LOGIN admin
|
||||
ENV DOLI_ADMIN_PASSWORD admin
|
||||
ENV DOLI_URL_ROOT 'http://localhost'
|
||||
ENV DOLI_NOCSRFCHECK 0
|
||||
|
||||
@@ -51,6 +47,8 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
|
||||
mkdir -p /var/www/documents && \
|
||||
chown -R www-data:www-data /var/www
|
||||
|
||||
RUN rm -rf /var/lib/apt/lists/*
|
||||
|
||||
EXPOSE 80
|
||||
VOLUME /var/www/documents
|
||||
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# usage: get_env_value VAR [DEFAULT]
|
||||
# ie: get_env_value '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)
|
||||
function get_env_value() {
|
||||
local varName="${1}"
|
||||
local fileVarName="${varName}_FILE"
|
||||
local defaultValue="${2:-}"
|
||||
|
||||
if [ "${!varName:-}" ] && [ "${!fileVarName:-}" ]; then
|
||||
echo >&2 "error: both ${varName} and ${fileVarName} are set (but are exclusive)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local value="${defaultValue}"
|
||||
if [ "${!varName:-}" ]; then
|
||||
value="${!varName}"
|
||||
elif [ "${!fileVarName:-}" ]; then
|
||||
value="$(< "${!fileVarName}")"
|
||||
fi
|
||||
|
||||
echo ${value}
|
||||
exit 0
|
||||
}
|
||||
|
||||
function initDolibarr()
|
||||
{
|
||||
local CURRENT_UID=$(id -u www-data)
|
||||
@@ -56,6 +81,7 @@ EOF
|
||||
function waitForDataBase()
|
||||
{
|
||||
r=1
|
||||
|
||||
while [[ ${r} -ne 0 ]]; do
|
||||
mysql -u ${DOLI_DB_USER} --protocol tcp -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -e "status" > /dev/null 2>&1
|
||||
r=$?
|
||||
@@ -175,6 +201,11 @@ function run()
|
||||
fi
|
||||
}
|
||||
|
||||
DOLI_DB_USER=$(get_env_value 'DOLI_DB_USER' 'doli')
|
||||
DOLI_DB_PASSWORD=$(get_env_value 'DOLI_DB_PASSWORD' 'doli_pass')
|
||||
DOLI_ADMIN_LOGIN=$(get_env_value 'DOLI_ADMIN_LOGIN' 'admin')
|
||||
DOLI_ADMIN_PASSWORD=$(get_env_value 'DOLI_ADMIN_PASSWORD' 'admin')
|
||||
|
||||
run
|
||||
|
||||
set -e
|
||||
|
||||
@@ -6,12 +6,8 @@ ENV DOLI_INSTALL_AUTO 1
|
||||
|
||||
ENV DOLI_DB_HOST mysql
|
||||
ENV DOLI_DB_HOST_PORT 3306
|
||||
ENV DOLI_DB_USER doli
|
||||
ENV DOLI_DB_PASSWORD doli_pass
|
||||
ENV DOLI_DB_NAME dolidb
|
||||
|
||||
ENV DOLI_ADMIN_LOGIN admin
|
||||
ENV DOLI_ADMIN_PASSWORD admin
|
||||
ENV DOLI_URL_ROOT 'http://localhost'
|
||||
ENV DOLI_NOCSRFCHECK 0
|
||||
|
||||
@@ -51,6 +47,8 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
|
||||
mkdir -p /var/www/documents && \
|
||||
chown -R www-data:www-data /var/www
|
||||
|
||||
RUN rm -rf /var/lib/apt/lists/*
|
||||
|
||||
EXPOSE 80
|
||||
VOLUME /var/www/documents
|
||||
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# usage: get_env_value VAR [DEFAULT]
|
||||
# ie: get_env_value '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)
|
||||
function get_env_value() {
|
||||
local varName="${1}"
|
||||
local fileVarName="${varName}_FILE"
|
||||
local defaultValue="${2:-}"
|
||||
|
||||
if [ "${!varName:-}" ] && [ "${!fileVarName:-}" ]; then
|
||||
echo >&2 "error: both ${varName} and ${fileVarName} are set (but are exclusive)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local value="${defaultValue}"
|
||||
if [ "${!varName:-}" ]; then
|
||||
value="${!varName}"
|
||||
elif [ "${!fileVarName:-}" ]; then
|
||||
value="$(< "${!fileVarName}")"
|
||||
fi
|
||||
|
||||
echo ${value}
|
||||
exit 0
|
||||
}
|
||||
|
||||
function initDolibarr()
|
||||
{
|
||||
local CURRENT_UID=$(id -u www-data)
|
||||
@@ -56,6 +81,7 @@ EOF
|
||||
function waitForDataBase()
|
||||
{
|
||||
r=1
|
||||
|
||||
while [[ ${r} -ne 0 ]]; do
|
||||
mysql -u ${DOLI_DB_USER} --protocol tcp -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -e "status" > /dev/null 2>&1
|
||||
r=$?
|
||||
@@ -175,6 +201,11 @@ function run()
|
||||
fi
|
||||
}
|
||||
|
||||
DOLI_DB_USER=$(get_env_value 'DOLI_DB_USER' 'doli')
|
||||
DOLI_DB_PASSWORD=$(get_env_value 'DOLI_DB_PASSWORD' 'doli_pass')
|
||||
DOLI_ADMIN_LOGIN=$(get_env_value 'DOLI_ADMIN_LOGIN' 'admin')
|
||||
DOLI_ADMIN_PASSWORD=$(get_env_value 'DOLI_ADMIN_PASSWORD' 'admin')
|
||||
|
||||
run
|
||||
|
||||
set -e
|
||||
|
||||
@@ -6,12 +6,8 @@ ENV DOLI_INSTALL_AUTO 1
|
||||
|
||||
ENV DOLI_DB_HOST mysql
|
||||
ENV DOLI_DB_HOST_PORT 3306
|
||||
ENV DOLI_DB_USER doli
|
||||
ENV DOLI_DB_PASSWORD doli_pass
|
||||
ENV DOLI_DB_NAME dolidb
|
||||
|
||||
ENV DOLI_ADMIN_LOGIN admin
|
||||
ENV DOLI_ADMIN_PASSWORD admin
|
||||
ENV DOLI_URL_ROOT 'http://localhost'
|
||||
ENV DOLI_NOCSRFCHECK 0
|
||||
|
||||
@@ -51,6 +47,8 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
|
||||
mkdir -p /var/www/documents && \
|
||||
chown -R www-data:www-data /var/www
|
||||
|
||||
RUN rm -rf /var/lib/apt/lists/*
|
||||
|
||||
EXPOSE 80
|
||||
VOLUME /var/www/documents
|
||||
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# usage: get_env_value VAR [DEFAULT]
|
||||
# ie: get_env_value '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)
|
||||
function get_env_value() {
|
||||
local varName="${1}"
|
||||
local fileVarName="${varName}_FILE"
|
||||
local defaultValue="${2:-}"
|
||||
|
||||
if [ "${!varName:-}" ] && [ "${!fileVarName:-}" ]; then
|
||||
echo >&2 "error: both ${varName} and ${fileVarName} are set (but are exclusive)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local value="${defaultValue}"
|
||||
if [ "${!varName:-}" ]; then
|
||||
value="${!varName}"
|
||||
elif [ "${!fileVarName:-}" ]; then
|
||||
value="$(< "${!fileVarName}")"
|
||||
fi
|
||||
|
||||
echo ${value}
|
||||
exit 0
|
||||
}
|
||||
|
||||
function initDolibarr()
|
||||
{
|
||||
local CURRENT_UID=$(id -u www-data)
|
||||
@@ -56,6 +81,7 @@ EOF
|
||||
function waitForDataBase()
|
||||
{
|
||||
r=1
|
||||
|
||||
while [[ ${r} -ne 0 ]]; do
|
||||
mysql -u ${DOLI_DB_USER} --protocol tcp -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -e "status" > /dev/null 2>&1
|
||||
r=$?
|
||||
@@ -175,6 +201,11 @@ function run()
|
||||
fi
|
||||
}
|
||||
|
||||
DOLI_DB_USER=$(get_env_value 'DOLI_DB_USER' 'doli')
|
||||
DOLI_DB_PASSWORD=$(get_env_value 'DOLI_DB_PASSWORD' 'doli_pass')
|
||||
DOLI_ADMIN_LOGIN=$(get_env_value 'DOLI_ADMIN_LOGIN' 'admin')
|
||||
DOLI_ADMIN_PASSWORD=$(get_env_value 'DOLI_ADMIN_PASSWORD' 'admin')
|
||||
|
||||
run
|
||||
|
||||
set -e
|
||||
|
||||
@@ -6,12 +6,8 @@ ENV DOLI_INSTALL_AUTO 1
|
||||
|
||||
ENV DOLI_DB_HOST mysql
|
||||
ENV DOLI_DB_HOST_PORT 3306
|
||||
ENV DOLI_DB_USER doli
|
||||
ENV DOLI_DB_PASSWORD doli_pass
|
||||
ENV DOLI_DB_NAME dolidb
|
||||
|
||||
ENV DOLI_ADMIN_LOGIN admin
|
||||
ENV DOLI_ADMIN_PASSWORD admin
|
||||
ENV DOLI_URL_ROOT 'http://localhost'
|
||||
ENV DOLI_NOCSRFCHECK 0
|
||||
|
||||
@@ -51,6 +47,8 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
|
||||
mkdir -p /var/www/documents && \
|
||||
chown -R www-data:www-data /var/www
|
||||
|
||||
RUN rm -rf /var/lib/apt/lists/*
|
||||
|
||||
EXPOSE 80
|
||||
VOLUME /var/www/documents
|
||||
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# usage: get_env_value VAR [DEFAULT]
|
||||
# ie: get_env_value '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)
|
||||
function get_env_value() {
|
||||
local varName="${1}"
|
||||
local fileVarName="${varName}_FILE"
|
||||
local defaultValue="${2:-}"
|
||||
|
||||
if [ "${!varName:-}" ] && [ "${!fileVarName:-}" ]; then
|
||||
echo >&2 "error: both ${varName} and ${fileVarName} are set (but are exclusive)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local value="${defaultValue}"
|
||||
if [ "${!varName:-}" ]; then
|
||||
value="${!varName}"
|
||||
elif [ "${!fileVarName:-}" ]; then
|
||||
value="$(< "${!fileVarName}")"
|
||||
fi
|
||||
|
||||
echo ${value}
|
||||
exit 0
|
||||
}
|
||||
|
||||
function initDolibarr()
|
||||
{
|
||||
local CURRENT_UID=$(id -u www-data)
|
||||
@@ -56,6 +81,7 @@ EOF
|
||||
function waitForDataBase()
|
||||
{
|
||||
r=1
|
||||
|
||||
while [[ ${r} -ne 0 ]]; do
|
||||
mysql -u ${DOLI_DB_USER} --protocol tcp -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} -e "status" > /dev/null 2>&1
|
||||
r=$?
|
||||
@@ -175,6 +201,11 @@ function run()
|
||||
fi
|
||||
}
|
||||
|
||||
DOLI_DB_USER=$(get_env_value 'DOLI_DB_USER' 'doli')
|
||||
DOLI_DB_PASSWORD=$(get_env_value 'DOLI_DB_PASSWORD' 'doli_pass')
|
||||
DOLI_ADMIN_LOGIN=$(get_env_value 'DOLI_ADMIN_LOGIN' 'admin')
|
||||
DOLI_ADMIN_PASSWORD=$(get_env_value 'DOLI_ADMIN_PASSWORD' 'admin')
|
||||
|
||||
run
|
||||
|
||||
set -e
|
||||
|
||||
33
test.sh
33
test.sh
@@ -7,18 +7,19 @@ BASE_DIR="$( cd "$(dirname "$0")" && pwd )"
|
||||
DOLI_VER=${1}
|
||||
PHP_VER=${2:-""}
|
||||
|
||||
rm -rf ${BASE_DIR}/docker-compose-links/ && mkdir ${BASE_DIR}/docker-compose-links
|
||||
rm -rf "${BASE_DIR}/docker-compose-links/" && mkdir "${BASE_DIR}/docker-compose-links"
|
||||
|
||||
for directory in $(ls ${BASE_DIR}/images); do
|
||||
dolibarrVersion=`echo ${directory} | cut -d\- -f1`
|
||||
phpVersion=`echo ${directory} | cut -d\- -f2`
|
||||
# shellcheck disable=SC2044
|
||||
for directory in $(find "${BASE_DIR}/images" -maxdepth 1 -mindepth 1 -type d -printf '%f\n'); do
|
||||
dolibarrVersion=$(echo "${directory}" | cut -d\- -f1)
|
||||
phpVersion=$(echo "${directory}" | cut -d\- -f2)
|
||||
|
||||
dolibarrMajor=`echo ${dolibarrVersion} | cut -d. -f1`
|
||||
phpMajor=`echo ${phpVersion} | cut -d. -f1`
|
||||
#dolibarrMajor=$(echo "${dolibarrVersion}" | cut -d. -f1)
|
||||
phpMajor=$(echo "${phpVersion}" | cut -d. -f1)
|
||||
|
||||
ln -nfs ${BASE_DIR}/images/${directory} ${BASE_DIR}/docker-compose-links/${directory}
|
||||
ln -nfs "${BASE_DIR}/images/${directory}" "${BASE_DIR}/docker-compose-links/${directory}"
|
||||
if [ "${phpMajor}" = "php7" ]; then
|
||||
ln -nfs ${BASE_DIR}/images/${directory} ${BASE_DIR}/docker-compose-links/${dolibarrVersion}
|
||||
ln -nfs "${BASE_DIR}/images/${directory}" "${BASE_DIR}/docker-compose-links/${dolibarrVersion}"
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -27,15 +28,15 @@ echo " - Dolibarr ${DOLI_VER}"
|
||||
if [ "${PHP_VER}" = "" ]; then
|
||||
echo " - PHP most recent"
|
||||
echo "Building image ..."
|
||||
DOLI_VERSION=${DOLI_VER} PHP_VERSION="" docker-compose -f ${BASE_DIR}/docker-compose.yml down 1> /dev/null 2>/dev/null
|
||||
DOLI_VERSION=${DOLI_VER} PHP_VERSION="" docker-compose -f ${BASE_DIR}/docker-compose.yml build web
|
||||
DOLI_VERSION=${DOLI_VER} PHP_VERSION="" docker-compose -f ${BASE_DIR}/docker-compose.yml up --force-recreate web
|
||||
DOLI_VERSION=${DOLI_VER} PHP_VERSION="" docker-compose -f ${BASE_DIR}/docker-compose.yml down
|
||||
DOLI_VERSION=${DOLI_VER} PHP_VERSION="" docker-compose -f "${BASE_DIR}/docker-compose.yml" down 1> /dev/null 2>/dev/null
|
||||
DOLI_VERSION=${DOLI_VER} PHP_VERSION="" docker-compose -f "${BASE_DIR}/docker-compose.yml" build web
|
||||
DOLI_VERSION=${DOLI_VER} PHP_VERSION="" docker-compose -f "${BASE_DIR}/docker-compose.yml" up --force-recreate web
|
||||
DOLI_VERSION=${DOLI_VER} PHP_VERSION="" docker-compose -f "${BASE_DIR}/docker-compose.yml" down
|
||||
else
|
||||
echo " - PHP ${PHP_VER}"
|
||||
echo "Building image ..."
|
||||
DOLI_VERSION=${DOLI_VER} PHP_VERSION="-php${PHP_VER}" docker-compose -f ${BASE_DIR}/docker-compose.yml down 1> /dev/null
|
||||
DOLI_VERSION=${DOLI_VER} PHP_VERSION="-php${PHP_VER}" docker-compose -f ${BASE_DIR}/docker-compose.yml build web
|
||||
DOLI_VERSION=${DOLI_VER} PHP_VERSION="-php${PHP_VER}" docker-compose -f ${BASE_DIR}/docker-compose.yml up --force-recreate web
|
||||
DOLI_VERSION=${DOLI_VER} PHP_VERSION="-php${PHP_VER}" docker-compose -f ${BASE_DIR}/docker-compose.yml down
|
||||
DOLI_VERSION=${DOLI_VER} PHP_VERSION="-php${PHP_VER}" docker-compose -f "${BASE_DIR}/docker-compose.yml" down 1> /dev/null
|
||||
DOLI_VERSION=${DOLI_VER} PHP_VERSION="-php${PHP_VER}" docker-compose -f "${BASE_DIR}/docker-compose.yml" build web
|
||||
DOLI_VERSION=${DOLI_VER} PHP_VERSION="-php${PHP_VER}" docker-compose -f "${BASE_DIR}/docker-compose.yml" up --force-recreate web
|
||||
DOLI_VERSION=${DOLI_VER} PHP_VERSION="-php${PHP_VER}" docker-compose -f "${BASE_DIR}/docker-compose.yml" down
|
||||
fi
|
||||
|
||||
53
update.sh
53
update.sh
@@ -11,13 +11,13 @@ source "${BASE_DIR}/versions.sh"
|
||||
|
||||
tags=""
|
||||
|
||||
rm -rf ${BASE_DIR}/images ${BASE_DIR}/docker-compose-links
|
||||
rm -rf "${BASE_DIR}/images" "${BASE_DIR}/docker-compose-links"
|
||||
|
||||
for dolibarrVersion in ${DOLIBARR_VERSIONS[@]}; do
|
||||
for dolibarrVersion in "${DOLIBARR_VERSIONS[@]}"; do
|
||||
echo "Generate Dockerfile for Dolibarr ${dolibarrVersion}"
|
||||
|
||||
tags="${tags}\n\*"
|
||||
dolibarrMajor=`echo ${dolibarrVersion} | cut -d. -f1`
|
||||
dolibarrMajor=$(echo ${dolibarrVersion} | cut -d. -f1)
|
||||
|
||||
# Mapping version according https://wiki.dolibarr.org/index.php/Versions
|
||||
# Regarding PHP Supported version : https://www.php.net/supported-versions.php
|
||||
@@ -37,8 +37,8 @@ for dolibarrVersion in ${DOLIBARR_VERSIONS[@]}; do
|
||||
php_base_images=( "7.4-apache" )
|
||||
fi
|
||||
|
||||
for php_base_image in ${php_base_images[@]}; do
|
||||
php_version=`echo ${php_base_image} | cut -d\- -f1`
|
||||
for php_base_image in "${php_base_images[@]}"; do
|
||||
php_version=$(echo "${php_base_image}" | cut -d\- -f1)
|
||||
|
||||
if [ "${dolibarrVersion}" = "develop" ]; then
|
||||
currentTag="${dolibarrVersion}"
|
||||
@@ -47,7 +47,7 @@ for dolibarrVersion in ${DOLIBARR_VERSIONS[@]}; do
|
||||
tags="${tags} ${currentTag}"
|
||||
fi
|
||||
|
||||
dir=${BASE_DIR}/"images/${currentTag}"
|
||||
dir="${BASE_DIR}/images/${currentTag}"
|
||||
|
||||
if [ "${php_version}" = "7.4" ]; then
|
||||
gd_config_args="\-\-with\-freetype\ \-\-with\-jpeg"
|
||||
@@ -55,46 +55,45 @@ for dolibarrVersion in ${DOLIBARR_VERSIONS[@]}; do
|
||||
gd_config_args="\-\-with\-png\-dir=\/usr\ \-\-with-jpeg-dir=\/usr"
|
||||
fi
|
||||
|
||||
mkdir -p ${dir}
|
||||
cat ${BASE_DIR}/Dockerfile.template | \
|
||||
sed 's/%PHP_BASE_IMAGE%/'"${php_base_image}"'/;' | \
|
||||
mkdir -p "${dir}"
|
||||
sed 's/%PHP_BASE_IMAGE%/'"${php_base_image}"'/;' "${BASE_DIR}/Dockerfile.template" | \
|
||||
sed 's/%DOLI_VERSION%/'"${dolibarrVersion}"'/;' | \
|
||||
sed 's/%GD_CONFIG_ARG%/'"${gd_config_args}"'/;' \
|
||||
> ${dir}/Dockerfile
|
||||
> "${dir}/Dockerfile"
|
||||
|
||||
cp ${BASE_DIR}/docker-run.sh ${dir}/docker-run.sh
|
||||
cp "${BASE_DIR}/docker-run.sh" "${dir}/docker-run.sh"
|
||||
|
||||
if [ ${DOCKER_BUILD} -eq 1 ]; then
|
||||
docker build --compress --tag tuxgasy/dolibarr:${currentTag} ${dir}
|
||||
if [ "${DOCKER_BUILD}" = "1" ]; then
|
||||
docker build --compress --tag "tuxgasy/dolibarr:${currentTag}" "${dir}"
|
||||
fi
|
||||
if [ ${DOCKER_PUSH} -eq 1 ]; then
|
||||
docker push tuxgasy/dolibarr:${currentTag}
|
||||
if [ "${DOCKER_PUSH}" = "1" ]; then
|
||||
docker push "tuxgasy/dolibarr:${currentTag}"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${DOCKER_BUILD} -eq 1 ]; then
|
||||
docker tag tuxgasy/dolibarr:${currentTag} tuxgasy/dolibarr:${dolibarrVersion}
|
||||
docker tag tuxgasy/dolibarr:${currentTag} tuxgasy/dolibarr:${dolibarrMajor}
|
||||
if [ "${dolibarrVersion}" = ${DOLIBARR_LATEST_TAG} ]; then
|
||||
docker tag tuxgasy/dolibarr:${currentTag} tuxgasy/dolibarr:latest
|
||||
if [ "${DOCKER_BUILD}" = "1" ]; then
|
||||
docker tag "tuxgasy/dolibarr:${currentTag}" "tuxgasy/dolibarr:${dolibarrVersion}"
|
||||
docker tag "tuxgasy/dolibarr:${currentTag}" "tuxgasy/dolibarr:${dolibarrMajor}"
|
||||
if [ "${dolibarrVersion}" = "${DOLIBARR_LATEST_TAG}" ]; then
|
||||
docker tag "tuxgasy/dolibarr:${currentTag}" tuxgasy/dolibarr:latest
|
||||
fi
|
||||
fi
|
||||
if [ ${DOCKER_PUSH} -eq 1 ]; then
|
||||
docker push tuxgasy/dolibarr:${dolibarrVersion}
|
||||
docker push tuxgasy/dolibarr:${dolibarrMajor}
|
||||
if [ "${dolibarrVersion}" = ${DOLIBARR_LATEST_TAG} ]; then
|
||||
if [ "${DOCKER_PUSH}" = "1" ]; then
|
||||
docker push "tuxgasy/dolibarr:${dolibarrVersion}"
|
||||
docker push "tuxgasy/dolibarr:${dolibarrMajor}"
|
||||
if [ "${dolibarrVersion}" = "${DOLIBARR_LATEST_TAG}" ]; then
|
||||
docker push tuxgasy/dolibarr:latest
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ${dolibarrVersion} = "develop" ]; then
|
||||
if [ "${dolibarrVersion}" = "develop" ]; then
|
||||
tags="${tags} develop"
|
||||
else
|
||||
tags="${tags} ${dolibarrVersion} ${dolibarrMajor}"
|
||||
fi
|
||||
if [ "${dolibarrVersion}" = ${DOLIBARR_LATEST_TAG} ]; then
|
||||
if [ "${dolibarrVersion}" = "${DOLIBARR_LATEST_TAG}" ]; then
|
||||
tags="${tags} latest"
|
||||
fi
|
||||
done
|
||||
|
||||
sed 's/%TAGS%/'"${tags}"'/' ${BASE_DIR}/README.template > ${BASE_DIR}/README.md
|
||||
sed 's/%TAGS%/'"${tags}"'/' "${BASE_DIR}/README.template" > "${BASE_DIR}/README.md"
|
||||
|
||||
Reference in New Issue
Block a user