Handle reviews and create convenience script + CONTRIBUTING.md

This commit is contained in:
Mathieu POTIER
2020-07-11 23:25:29 +02:00
parent 1dfc6ebe46
commit e70ac88edb
33 changed files with 559 additions and 336 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
docker-compose-links/

37
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,37 @@
# Contributing
1. Create only head Dolibarr version for each Major release.
2. Keep only one Dockerfile.template file, use `sed` value replacement in `update.sh`
3. Keep most up to date PHP version that matches each [Dolibarr releases](https://wiki.dolibarr.org/index.php/Versions).
4. Be careful about [supported PHP versions](https://www.php.net/supported-versions.php), try to avoid deprecated PHP Version, but only if it doesn't break rule #3.
5. Run the `update.sh` script
6. check the `README.md`, to ensure it is well formatted (on some environment `Supported Tags` could be broken)
7. Commit all content in `images` directory
8. Open a pull request with a polite and well described content ^_^
# How to create images
All is done through the `update.sh` script, Dolibarr version to build are stored in `versions.sh`
Ensure that the var `DOLIBARR_VERSIONS` in `versions.sh` is having all version you want to build.
Run the script.
## Tips
You can ask the script to build and push version for you: just add `DOCKER_BUILD=1` and `DOCKER_PUSH=1` in command line.
```bash
$> DOCKER_BUILD=1 DOCKER_PUSH=1 ./update.sh
```
# Test your local copy before PR
For convenience, you can use the `test.sh` script, it will build and run containers based on existing Dockerfile in `images` directory. (You'd better run `update.sh` before)
```bash
$> ./test.sh <DOLIBARR_VERSION> <PHP_VERSION>
```
* DOLIBARR_VERSION : (Mandatory) the version you want to build and run.
* PHP_VERSION : (Optional) the Dolibarr version with this PHP version you want to run specifically, if omitted it will use the most up to date PHP version.
If you want to run Dolibarr 12.0.1 with PHP 5.6
```bash
$> ./test.sh 12.0.1 5.6
```
If you want to run Dolibarr 12.0.1 with most up to date PHP version
```bash
$> ./test.sh 12.0.1
```

View File

@@ -1,4 +1,4 @@
FROM php:%PHP_VERSION%-apache-stretch FROM php:%PHP_BASE_IMAGE%
MAINTAINER Garcia MICHEL <garcia@soamichel.fr> MAINTAINER Garcia MICHEL <garcia@soamichel.fr>
@@ -21,21 +21,23 @@ ENV PHP_INI_DATE_TIMEZONE 'UTC'
RUN apt-get update -y \ RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \ libpng-dev \
libjpeg-dev \
libldap2-dev \ libldap2-dev \
libxml2-dev \ libxml2-dev \
libzip-dev \ libzip-dev \
mysql-client \ default-mysql-client \
unzip \ unzip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ && docker-php-ext-configure gd %GD_CONFIG_ARG% \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \ && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
&& docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \ && docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install -j$(nproc) ldap && \ && docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION ENV DOLI_VERSION %DOLI_VERSION%
# Get Dolibarr # Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
@@ -43,11 +45,9 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \ ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \ rm -rf /tmp/* && \
mkdir -p /var/www/documents mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80 EXPOSE 80
VOLUME /var/www/documents VOLUME /var/www/documents

View File

@@ -4,13 +4,13 @@ Docker image for Dolibarr with auto installer on first boot.
## Supported tags ## Supported tags
* 6.0.8-php7.1 6.0.8 * 6.0.8-php5.6 6.0.8-php7.1 6.0.8 6
* 7.0.5-php7.2 7.0.5 * 7.0.5-php5.6 7.0.5-php7.2 7.0.5 7
* 8.0.6-php7.2 8.0.6 * 8.0.6-php5.6 8.0.6-php7.2 8.0.6 8
* 9.0.4-php7.2 9.0.4-php7.3 9.0.4 * 9.0.4-php5.6 9.0.4-php7.3 9.0.4 9
* 10.0.7-php7.2 10.0.7-php7.3 10.0.7 * 10.0.7-php5.6 10.0.7-php7.3 10.0.7 10
* 11.0.5-php7.2 11.0.5-php7.3 11.0.5-php7.4 11.0.5 * 11.0.5-php5.6 11.0.5-php7.4 11.0.5 11
* 12.0.1-php7.2 12.0.1-php7.3 12.0.1-php7.4 12.0.1 latest * 12.0.1-php5.6 12.0.1-php7.4 12.0.1 12 latest
## What is Dolibarr ? ## What is Dolibarr ?
@@ -29,25 +29,26 @@ Let's use [Docker Compose](https://docs.docker.com/compose/) to integrate it wit
Create `docker-compose.yml` file as following: Create `docker-compose.yml` file as following:
``` ```
mariadb: services:
image: mariadb:latest mariadb:
environment: image: mariadb:latest
MYSQL_ROOT_PASSWORD: root environment:
MYSQL_DATABASE: dolibarr MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: dolibarr
web: web:
image: tuxgasy/dolibarr image: tuxgasy/dolibarr
environment: environment:
DOLI_DB_HOST: mariadb DOLI_DB_HOST: mariadb
DOLI_DB_USER: root DOLI_DB_USER: root
DOLI_DB_PASSWORD: root DOLI_DB_PASSWORD: root
DOLI_DB_NAME: dolibarr DOLI_DB_NAME: dolibarr
DOLI_URL_ROOT: 'http://0.0.0.0' DOLI_URL_ROOT: 'http://0.0.0.0'
PHP_INI_DATE_TIMEZONE: 'Europe/Paris' PHP_INI_DATE_TIMEZONE: 'Europe/Paris'
ports: ports:
- "80:80" - "80:80"
links: links:
- mariadb - mariadb
``` ```
Then run all services `docker-compose up -d`. Now, go to http://0.0.0.0 to access to the new Dolibarr installation. Then run all services `docker-compose up -d`. Now, go to http://0.0.0.0 to access to the new Dolibarr installation.

View File

@@ -23,25 +23,26 @@ Let's use [Docker Compose](https://docs.docker.com/compose/) to integrate it wit
Create `docker-compose.yml` file as following: Create `docker-compose.yml` file as following:
``` ```
mariadb: services:
image: mariadb:latest mariadb:
environment: image: mariadb:latest
MYSQL_ROOT_PASSWORD: root environment:
MYSQL_DATABASE: dolibarr MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: dolibarr
web: web:
image: tuxgasy/dolibarr image: tuxgasy/dolibarr
environment: environment:
DOLI_DB_HOST: mariadb DOLI_DB_HOST: mariadb
DOLI_DB_USER: root DOLI_DB_USER: root
DOLI_DB_PASSWORD: root DOLI_DB_PASSWORD: root
DOLI_DB_NAME: dolibarr DOLI_DB_NAME: dolibarr
DOLI_URL_ROOT: 'http://0.0.0.0' DOLI_URL_ROOT: 'http://0.0.0.0'
PHP_INI_DATE_TIMEZONE: 'Europe/Paris' PHP_INI_DATE_TIMEZONE: 'Europe/Paris'
ports: ports:
- "80:80" - "80:80"
links: links:
- mariadb - mariadb
``` ```
Then run all services `docker-compose up -d`. Now, go to http://0.0.0.0 to access to the new Dolibarr installation. Then run all services `docker-compose up -d`. Now, go to http://0.0.0.0 to access to the new Dolibarr installation.

View File

@@ -1,3 +1,4 @@
version: '3'
# This docker-compose.yml file is used to build and test quickly # This docker-compose.yml file is used to build and test quickly
# a specific version of Dolibarr # a specific version of Dolibarr
# #
@@ -7,24 +8,38 @@
# $ docker-compose up # $ docker-compose up
# #
# More informations about Docker-compose : https://docs.docker.com/compose/ # More informations about Docker-compose : https://docs.docker.com/compose/
networks:
intenal-pod:
internal: true
external-pod:
internal: false
mariadb:
image: mariadb:latest
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: dolibarr
web: services:
build: ./images/$DOLI_VERSION mariadb:
environment: image: mariadb:latest
DOLI_DB_HOST: mariadb environment:
DOLI_DB_USER: root MYSQL_ROOT_PASSWORD: root
DOLI_DB_PASSWORD: root MYSQL_DATABASE: dolibarr
DOLI_DB_NAME: dolibarr networks:
DOLI_URL_ROOT: 'http://0.0.0.0' - intenal-pod
WWW_USER_ID: 1000
WWW_GROUP_ID: 1000 web:
ports: build:
- "80:80" context: ./docker-compose-links/${DOLI_VERSION}${PHP_VERSION}
links: image: tuxgasy/dolibarr:${DOLI_VERSION}${PHP_VERSION}
- mariadb depends_on:
- mariadb
environment:
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
WWW_GROUP_ID: 1000
ports:
- "80:80"
networks:
- intenal-pod
- external-pod

View File

@@ -0,0 +1,55 @@
FROM php:5.6-apache-stretch
MAINTAINER Garcia MICHEL <garcia@soamichel.fr>
ENV DOLI_INSTALL_AUTO 1
ENV DOLI_DB_HOST mysql
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
ENV WWW_USER_ID 33
ENV WWW_GROUP_ID 33
ENV PHP_INI_DATE_TIMEZONE 'UTC'
RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
libldap2-dev \
libxml2-dev \
libzip-dev \
default-mysql-client \
unzip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
&& docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ENV DOLI_VERSION 10.0.7
# Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/* && \
mkdir -p /var/www/documents
EXPOSE 80
VOLUME /var/www/documents
COPY docker-run.sh /usr/local/bin/
ENTRYPOINT ["docker-run.sh"]

View File

@@ -21,13 +21,15 @@ ENV PHP_INI_DATE_TIMEZONE 'UTC'
RUN apt-get update -y \ RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \ libpng-dev \
libjpeg-dev \
libldap2-dev \ libldap2-dev \
libxml2-dev \ libxml2-dev \
libzip-dev \ libzip-dev \
mysql-client \ default-mysql-client \
unzip \ unzip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \ && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
@@ -35,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \ && docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION ENV DOLI_VERSION 10.0.7
# Get Dolibarr # Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
@@ -43,11 +45,9 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \ ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \ rm -rf /tmp/* && \
mkdir -p /var/www/documents mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80 EXPOSE 80
VOLUME /var/www/documents VOLUME /var/www/documents

View File

@@ -0,0 +1,55 @@
FROM php:5.6-apache-stretch
MAINTAINER Garcia MICHEL <garcia@soamichel.fr>
ENV DOLI_INSTALL_AUTO 1
ENV DOLI_DB_HOST mysql
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
ENV WWW_USER_ID 33
ENV WWW_GROUP_ID 33
ENV PHP_INI_DATE_TIMEZONE 'UTC'
RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
libldap2-dev \
libxml2-dev \
libzip-dev \
default-mysql-client \
unzip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
&& docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ENV DOLI_VERSION 11.0.5
# Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/* && \
mkdir -p /var/www/documents
EXPOSE 80
VOLUME /var/www/documents
COPY docker-run.sh /usr/local/bin/
ENTRYPOINT ["docker-run.sh"]

View File

@@ -29,6 +29,7 @@ RUN apt-get update -y \
libzip-dev \ libzip-dev \
default-mysql-client \ default-mysql-client \
unzip \ unzip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \ && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
@@ -36,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \ && docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION ENV DOLI_VERSION 11.0.5
# Get Dolibarr # Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
@@ -44,11 +45,9 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \ ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \ rm -rf /tmp/* && \
mkdir -p /var/www/documents mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80 EXPOSE 80
VOLUME /var/www/documents VOLUME /var/www/documents

View File

@@ -0,0 +1,55 @@
FROM php:5.6-apache-stretch
MAINTAINER Garcia MICHEL <garcia@soamichel.fr>
ENV DOLI_INSTALL_AUTO 1
ENV DOLI_DB_HOST mysql
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
ENV WWW_USER_ID 33
ENV WWW_GROUP_ID 33
ENV PHP_INI_DATE_TIMEZONE 'UTC'
RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
libldap2-dev \
libxml2-dev \
libzip-dev \
default-mysql-client \
unzip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
&& docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ENV DOLI_VERSION 12.0.1
# Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/* && \
mkdir -p /var/www/documents
EXPOSE 80
VOLUME /var/www/documents
COPY docker-run.sh /usr/local/bin/
ENTRYPOINT ["docker-run.sh"]

View File

@@ -1,55 +0,0 @@
FROM php:7.2-apache-stretch
MAINTAINER Garcia MICHEL <garcia@soamichel.fr>
ENV DOLI_INSTALL_AUTO 1
ENV DOLI_DB_HOST mysql
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
ENV WWW_USER_ID 33
ENV WWW_GROUP_ID 33
ENV PHP_INI_DATE_TIMEZONE 'UTC'
RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \
libpng-dev \
libjpeg-dev \
libldap2-dev \
libxml2-dev \
libzip-dev \
mysql-client \
unzip \
&& rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
&& docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION
# Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \
mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80
VOLUME /var/www/documents
COPY docker-run.sh /usr/local/bin/
ENTRYPOINT ["docker-run.sh"]

View File

@@ -1,55 +0,0 @@
FROM php:7.3-apache-stretch
MAINTAINER Garcia MICHEL <garcia@soamichel.fr>
ENV DOLI_INSTALL_AUTO 1
ENV DOLI_DB_HOST mysql
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
ENV WWW_USER_ID 33
ENV WWW_GROUP_ID 33
ENV PHP_INI_DATE_TIMEZONE 'UTC'
RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \
libpng-dev \
libjpeg-dev \
libldap2-dev \
libxml2-dev \
libzip-dev \
mysql-client \
unzip \
&& rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
&& docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION
# Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \
mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80
VOLUME /var/www/documents
COPY docker-run.sh /usr/local/bin/
ENTRYPOINT ["docker-run.sh"]

View File

@@ -29,6 +29,7 @@ RUN apt-get update -y \
libzip-dev \ libzip-dev \
default-mysql-client \ default-mysql-client \
unzip \ unzip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \ && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
@@ -36,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \ && docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION ENV DOLI_VERSION 12.0.1
# Get Dolibarr # Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
@@ -44,11 +45,9 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \ ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \ rm -rf /tmp/* && \
mkdir -p /var/www/documents mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80 EXPOSE 80
VOLUME /var/www/documents VOLUME /var/www/documents

View File

@@ -1,4 +1,4 @@
FROM php:7.4-apache FROM php:5.6-apache-stretch
MAINTAINER Garcia MICHEL <garcia@soamichel.fr> MAINTAINER Garcia MICHEL <garcia@soamichel.fr>
@@ -29,14 +29,15 @@ RUN apt-get update -y \
libzip-dev \ libzip-dev \
default-mysql-client \ default-mysql-client \
unzip \ unzip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \ && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
&& docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \ && docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install -j$(nproc) ldap && \ && docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION ENV DOLI_VERSION 6.0.8
# Get Dolibarr # Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
@@ -44,11 +45,9 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \ ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \ rm -rf /tmp/* && \
mkdir -p /var/www/documents mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80 EXPOSE 80
VOLUME /var/www/documents VOLUME /var/www/documents

View File

@@ -21,13 +21,15 @@ ENV PHP_INI_DATE_TIMEZONE 'UTC'
RUN apt-get update -y \ RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \ libpng-dev \
libjpeg-dev \
libldap2-dev \ libldap2-dev \
libxml2-dev \ libxml2-dev \
libzip-dev \ libzip-dev \
mysql-client \ default-mysql-client \
unzip \ unzip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \ && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
@@ -35,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \ && docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION ENV DOLI_VERSION 6.0.8
# Get Dolibarr # Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
@@ -43,11 +45,9 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \ ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \ rm -rf /tmp/* && \
mkdir -p /var/www/documents mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80 EXPOSE 80
VOLUME /var/www/documents VOLUME /var/www/documents

View File

@@ -1,4 +1,4 @@
FROM php:7.2-apache-stretch FROM php:5.6-apache-stretch
MAINTAINER Garcia MICHEL <garcia@soamichel.fr> MAINTAINER Garcia MICHEL <garcia@soamichel.fr>
@@ -21,13 +21,15 @@ ENV PHP_INI_DATE_TIMEZONE 'UTC'
RUN apt-get update -y \ RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \ libpng-dev \
libjpeg-dev \
libldap2-dev \ libldap2-dev \
libxml2-dev \ libxml2-dev \
libzip-dev \ libzip-dev \
mysql-client \ default-mysql-client \
unzip \ unzip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \ && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
@@ -35,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \ && docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION ENV DOLI_VERSION 7.0.5
# Get Dolibarr # Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
@@ -43,11 +45,9 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \ ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \ rm -rf /tmp/* && \
mkdir -p /var/www/documents mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80 EXPOSE 80
VOLUME /var/www/documents VOLUME /var/www/documents

View File

@@ -21,13 +21,15 @@ ENV PHP_INI_DATE_TIMEZONE 'UTC'
RUN apt-get update -y \ RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \ libpng-dev \
libjpeg-dev \
libldap2-dev \ libldap2-dev \
libxml2-dev \ libxml2-dev \
libzip-dev \ libzip-dev \
mysql-client \ default-mysql-client \
unzip \ unzip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \ && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
@@ -35,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \ && docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION ENV DOLI_VERSION 7.0.5
# Get Dolibarr # Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
@@ -43,11 +45,9 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \ ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \ rm -rf /tmp/* && \
mkdir -p /var/www/documents mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80 EXPOSE 80
VOLUME /var/www/documents VOLUME /var/www/documents

View File

@@ -1,4 +1,4 @@
FROM php:7.2-apache-stretch FROM php:5.6-apache-stretch
MAINTAINER Garcia MICHEL <garcia@soamichel.fr> MAINTAINER Garcia MICHEL <garcia@soamichel.fr>
@@ -21,13 +21,15 @@ ENV PHP_INI_DATE_TIMEZONE 'UTC'
RUN apt-get update -y \ RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \ libpng-dev \
libjpeg-dev \
libldap2-dev \ libldap2-dev \
libxml2-dev \ libxml2-dev \
libzip-dev \ libzip-dev \
mysql-client \ default-mysql-client \
unzip \ unzip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \ && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
@@ -35,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \ && docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION ENV DOLI_VERSION 8.0.6
# Get Dolibarr # Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
@@ -43,11 +45,9 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \ ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \ rm -rf /tmp/* && \
mkdir -p /var/www/documents mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80 EXPOSE 80
VOLUME /var/www/documents VOLUME /var/www/documents

View File

@@ -21,13 +21,15 @@ ENV PHP_INI_DATE_TIMEZONE 'UTC'
RUN apt-get update -y \ RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \ libpng-dev \
libjpeg-dev \
libldap2-dev \ libldap2-dev \
libxml2-dev \ libxml2-dev \
libzip-dev \ libzip-dev \
mysql-client \ default-mysql-client \
unzip \ unzip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \ && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
@@ -35,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \ && docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION ENV DOLI_VERSION 8.0.6
# Get Dolibarr # Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
@@ -43,11 +45,9 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \ ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \ rm -rf /tmp/* && \
mkdir -p /var/www/documents mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80 EXPOSE 80
VOLUME /var/www/documents VOLUME /var/www/documents

View File

@@ -1,4 +1,4 @@
FROM php:7.3-apache-stretch FROM php:5.6-apache-stretch
MAINTAINER Garcia MICHEL <garcia@soamichel.fr> MAINTAINER Garcia MICHEL <garcia@soamichel.fr>
@@ -21,13 +21,15 @@ ENV PHP_INI_DATE_TIMEZONE 'UTC'
RUN apt-get update -y \ RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \ libpng-dev \
libjpeg-dev \
libldap2-dev \ libldap2-dev \
libxml2-dev \ libxml2-dev \
libzip-dev \ libzip-dev \
mysql-client \ default-mysql-client \
unzip \ unzip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \ && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
@@ -35,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \ && docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION ENV DOLI_VERSION 9.0.4
# Get Dolibarr # Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
@@ -43,11 +45,9 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \ ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \ rm -rf /tmp/* && \
mkdir -p /var/www/documents mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80 EXPOSE 80
VOLUME /var/www/documents VOLUME /var/www/documents

View File

@@ -0,0 +1,96 @@
#!/bin/bash
usermod -u ${WWW_USER_ID} www-data
groupmod -g ${WWW_GROUP_ID} www-data
if [ ! -d /var/www/documents ]; then
mkdir /var/www/documents
fi
chown -R www-data:www-data /var/www
if [ ! -f ${PHP_INI_DIR}/conf.d/dolibarr-php.ini ]; then
cat <<EOF > ${PHP_INI_DIR}/conf.d/dolibarr-php.ini
date.timezone = ${PHP_INI_DATE_TIMEZONE}
sendmail_path = /usr/sbin/sendmail -t -i
EOF
fi
if [ ! -f /var/www/html/conf/conf.php ]; then
cat <<EOF > /var/www/html/conf/conf.php
<?php
\$dolibarr_main_url_root='${DOLI_URL_ROOT}';
\$dolibarr_main_document_root='/var/www/html';
\$dolibarr_main_url_root_alt='/custom';
\$dolibarr_main_document_root_alt='/var/www/html/custom';
\$dolibarr_main_data_root='/var/www/documents';
\$dolibarr_main_db_host='${DOLI_DB_HOST}';
\$dolibarr_main_db_port='3306';
\$dolibarr_main_db_name='${DOLI_DB_NAME}';
\$dolibarr_main_db_prefix='llx_';
\$dolibarr_main_db_user='${DOLI_DB_USER}';
\$dolibarr_main_db_pass='${DOLI_DB_PASSWORD}';
\$dolibarr_main_db_type='mysqli';
EOF
chown www-data:www-data /var/www/html/conf/conf.php
chmod 400 /var/www/html/conf/conf.php
fi
if [ ${DOLI_INSTALL_AUTO} -eq 1 ]; then
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=$?
if [ $r -ne 0 ]; then
echo "Waiting that SQL database is up..."
sleep 2
fi
done
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} ${DOLI_DB_NAME} -e "SELECT * FROM llx_const" > /dev/null 2>&1
if [ $? -ne 0 ]; then
for fileSQL in /var/www/html/install/mysql/tables/*.sql; do
if [[ ${fileSQL} != *.key.sql ]]; then
echo "Importing table from `basename ${fileSQL}`..."
sed -i 's/--.*//g;' ${fileSQL} # remove all comment
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} ${DOLI_DB_NAME} < ${fileSQL}
fi
done
for fileSQL in /var/www/html/install/mysql/tables/*.key.sql; do
echo "Importing table key from `basename ${fileSQL}`..."
sed -i 's/--.*//g;' ${fileSQL}
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} ${DOLI_DB_NAME} < ${fileSQL} > /dev/null 2>&1
done
for fileSQL in /var/www/html/install/mysql/functions/*.sql; do
echo "Importing `basename ${fileSQL}`..."
sed -i 's/--.*//g;' ${fileSQL}
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} ${DOLI_DB_NAME} < ${fileSQL} > /dev/null 2>&1
done
for fileSQL in /var/www/html/install/mysql/data/*.sql; do
echo "Importing data from `basename ${fileSQL}`..."
sed -i 's/--.*//g;' ${fileSQL}
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} ${DOLI_DB_NAME} < ${fileSQL} > /dev/null 2>&1
done
echo "Create SuperAdmin account ..."
pass_crypted=`echo -n ${DOLI_ADMIN_PASSWORD} | md5sum | awk '{print $1}'`
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} ${DOLI_DB_NAME} -e "INSERT INTO llx_user (entity, login, pass_crypted, lastname, admin, statut) VALUES (0, '${DOLI_ADMIN_LOGIN}', '${pass_crypted}', 'SuperAdmin', 1, 1);" > /dev/null 2>&1
echo "Set some default const ..."
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} ${DOLI_DB_NAME} -e "DELETE FROM llx_const WHERE name='MAIN_VERSION_LAST_INSTALL';" > /dev/null 2>&1
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} ${DOLI_DB_NAME} -e "DELETE FROM llx_const WHERE name='MAIN_NOT_INSTALLED';" > /dev/null 2>&1
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} ${DOLI_DB_NAME} -e "DELETE FROM llx_const WHERE name='MAIN_LANG_DEFAULT';" > /dev/null 2>&1
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} ${DOLI_DB_NAME} -e "INSERT INTO llx_const(name,value,type,visible,note,entity) values('MAIN_VERSION_LAST_INSTALL', '${DOLI_VERSION}', 'chaine', 0, 'Dolibarr version when install', 0);" > /dev/null 2>&1
mysql -u ${DOLI_DB_USER} -p${DOLI_DB_PASSWORD} -h ${DOLI_DB_HOST} ${DOLI_DB_NAME} -e "INSERT INTO llx_const(name,value,type,visible,note,entity) VALUES ('MAIN_LANG_DEFAULT', 'auto', 'chaine', 0, 'Default language', 1);" > /dev/null 2>&1
touch /var/www/documents/install.lock
chown www-data:www-data /var/www/documents/install.lock
chmod 400 /var/www/documents/install.lock
fi
fi
exec apache2-foreground

View File

@@ -1,55 +0,0 @@
FROM php:7.2-apache-stretch
MAINTAINER Garcia MICHEL <garcia@soamichel.fr>
ENV DOLI_INSTALL_AUTO 1
ENV DOLI_DB_HOST mysql
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
ENV WWW_USER_ID 33
ENV WWW_GROUP_ID 33
ENV PHP_INI_DATE_TIMEZONE 'UTC'
RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \
libpng-dev \
libjpeg-dev \
libldap2-dev \
libxml2-dev \
libzip-dev \
mysql-client \
unzip \
&& rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
&& docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION
# Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \
mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80
VOLUME /var/www/documents
COPY docker-run.sh /usr/local/bin/
ENTRYPOINT ["docker-run.sh"]

View File

@@ -21,13 +21,15 @@ ENV PHP_INI_DATE_TIMEZONE 'UTC'
RUN apt-get update -y \ RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \ libpng-dev \
libjpeg-dev \
libldap2-dev \ libldap2-dev \
libxml2-dev \ libxml2-dev \
libzip-dev \ libzip-dev \
mysql-client \ default-mysql-client \
unzip \ unzip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
&& docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \ && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
@@ -35,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \ && docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION ENV DOLI_VERSION 9.0.4
# Get Dolibarr # Get Dolibarr
ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip ADD https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.zip /tmp/dolibarr.zip
@@ -43,11 +45,9 @@ RUN unzip -q /tmp/dolibarr.zip -d /tmp/dolibarr && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/htdocs/* /var/www/html/ && \
ln -s /var/www/html /var/www/htdocs && \ ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \ cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \ rm -rf /tmp/* && \
mkdir -p /var/www/documents mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80 EXPOSE 80
VOLUME /var/www/documents VOLUME /var/www/documents

41
test.sh Executable file
View File

@@ -0,0 +1,41 @@
#!/bin/bash
set -e
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
for directory in $(ls ${BASE_DIR}/images); 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`
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}
fi
done
echo "Testing for:"
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
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
fi

101
update.sh
View File

@@ -2,63 +2,92 @@
set -e set -e
versions=( "6.0.8" "7.0.5" "8.0.6" "9.0.4" "10.0.7" "11.0.5" "12.0.1" ) DOCKER_BUILD=${DOCKER_BUILD:-0}
DOCKER_PUSH=${DOCKER_PUSH:-0}
BASE_DIR="$( cd "$(dirname "$0")" && pwd )"
source "${BASE_DIR}/versions.sh"
tags="" tags=""
rm -rf images/ rm -rf ${BASE_DIR}/images ${BASE_DIR}/docker-compose-links
for version in ${versions[@]}; do for dolibarrVersion in ${DOLIBARR_VERSIONS[@]}; do
echo "Generate Dockerfile for Dolibarr ${version}" echo "Generate Dockerfile for Dolibarr ${dolibarrVersion}"
tags="${tags}\n\* " tags="${tags}\n\* "
dolibarrMajor=`echo ${dolibarrVersion} | cut -d. -f1`
# Mapping version according https://wiki.dolibarr.org/index.php/Versions # Mapping version according https://wiki.dolibarr.org/index.php/Versions
# Regarding PHP Supported version : https://www.php.net/supported-versions.php # Regarding PHP Supported version : https://www.php.net/supported-versions.php
if [ "$version" = "6.0.8" ]; then #Version discontinued if [ "${dolibarrMajor}" = "6" ]; then #Version discontinued
php_versions=( "7.1" ) php_base_images=( "5.6-apache-stretch" "7.1-apache-stretch" )
elif [ "$version" = "7.0.5" ]; then elif [ "${dolibarrMajor}" = "7" ]; then
php_versions=( "7.2" ) php_base_images=( "5.6-apache-stretch" "7.2-apache-stretch" )
elif [ "$version" = "8.0.6" ]; then elif [ "${dolibarrMajor}" = "8" ]; then
php_versions=( "7.2" ) php_base_images=( "5.6-apache-stretch" "7.2-apache-stretch" )
elif [ "$version" = "9.0.4" ]; then elif [ "${dolibarrMajor}" = "9" ]; then
php_versions=( "7.2" "7.3" ) php_base_images=( "5.6-apache-stretch" "7.3-apache-stretch" )
elif [ "$version" = "10.0.7" ]; then elif [ "${dolibarrMajor}" = "10" ]; then
php_versions=( "7.2" "7.3" ) php_base_images=( "5.6-apache-stretch" "7.3-apache-stretch" )
elif [ "$version" = "11.0.5" ]; then elif [ "${dolibarrMajor}" = "11" ]; then
php_versions=( "7.2" "7.3" "7.4" ) php_base_images=( "5.6-apache-stretch" "7.4-apache" )
elif [ "$version" = "12.0.1" ]; then elif [ "${dolibarrMajor}" = "12" ]; then
php_versions=( "7.2" "7.3" "7.4" ) php_base_images=( "5.6-apache-stretch" "7.4-apache" )
else else
php_versions=( "7.3" "7.4" ) php_base_images=( "7.4-apache" )
fi fi
for php_version in ${php_versions[@]}; do for php_base_image in ${php_base_images[@]}; do
currentTag="${version}-php${php_version}"
dir="images/${currentTag}" php_version=`echo ${php_base_image} | cut -d\- -f1`
currentTag="${dolibarrVersion}-php${php_version}"
dir=${BASE_DIR}/"images/${currentTag}"
tags="${tags}${currentTag} " tags="${tags}${currentTag} "
mkdir -p $dir if [ "${php_version}" = "7.4" ]; then
gd_config_args="\-\-with\-freetype\ \-\-with\-jpeg"
if [ -f Dockerfile_${php_version}.template ]; then
sed 's/%PHP_VERSION%/'"${php_version}"'/;' Dockerfile_${php_version}.template > ${dir}/Dockerfile
else else
sed 's/%PHP_VERSION%/'"${php_version}"'/;' Dockerfile.template > ${dir}/Dockerfile gd_config_args="\-\-with\-png\-dir=\/usr\ \-\-with-jpeg-dir=\/usr"
fi fi
cp docker-run.sh ${dir}/docker-run.sh mkdir -p ${dir}
cat ${BASE_DIR}/Dockerfile.template | \
sed 's/%PHP_BASE_IMAGE%/'"${php_base_image}"'/;' | \
sed 's/%DOLI_VERSION%/'"${dolibarrVersion}"'/;' | \
sed 's/%GD_CONFIG_ARG%/'"${gd_config_args}"'/;' \
> ${dir}/Dockerfile
#docker build --compress --tag tuxgasy/dolibarr:${currentTag} --build-arg DOLI_VERSION=${version} ${dir} cp ${BASE_DIR}/docker-run.sh ${dir}/docker-run.sh
#docker push tuxgasy/dolibarr:${currentTag}
if [ ${DOCKER_BUILD} -eq 1 ]; then
docker build --compress --tag tuxgasy/dolibarr:${currentTag} ${dir}
fi
if [ ${DOCKER_PUSH} -eq 1 ]; then
docker push tuxgasy/dolibarr:${currentTag}
fi
done done
#docker tag tuxgasy/dolibarr:${currentTag} tuxgasy/dolibarr:${version} if [ ${DOCKER_BUILD} -eq 1 ]; then
#docker push tuxgasy/dolibarr:${version} docker tag tuxgasy/dolibarr:${currentTag} tuxgasy/dolibarr:${dolibarrVersion}
docker tag tuxgasy/dolibarr:${currentTag} tuxgasy/dolibarr:${dolibarrMajor}
fi
if [ ${DOCKER_PUSH} -eq 1 ]; then
docker push tuxgasy/dolibarr:${dolibarrVersion}
docker push tuxgasy/dolibarr:${dolibarrMajor}
fi
tags="${tags}${version}" tags="${tags}${dolibarrVersion} ${dolibarrMajor}"
done done
#docker tag tuxgasy/dolibarr:${version} tuxgasy/dolibarr:latest if [ ${DOCKER_BUILD} -eq 1 ]; then
#docker push tuxgasy/dolibarr:latest docker tag tuxgasy/dolibarr:${dolibarrVersion} tuxgasy/dolibarr:latest
fi
if [ ${DOCKER_PUSH} -eq 1 ]; then
docker push tuxgasy/dolibarr:latest
fi
tags="${tags} latest" tags="${tags} latest"
sed 's/%TAGS%/'"${tags}"'/' README.template > README.md sed 's/%TAGS%/'"${tags}"'/' ${BASE_DIR}/README.template > ${BASE_DIR}/README.md

5
versions.sh Normal file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
set -e
DOLIBARR_VERSIONS=( "6.0.8" "7.0.5" "8.0.6" "9.0.4" "10.0.7" "11.0.5" "12.0.1" )