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>
@@ -21,21 +21,23 @@ 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 \
libjpeg-dev \
libldap2-dev \
libxml2-dev \
libzip-dev \
mysql-client \
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-configure gd %GD_CONFIG_ARG% \
&& 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
ENV DOLI_VERSION %DOLI_VERSION%
# Get Dolibarr
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/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \
rm -rf /tmp/* && \
mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80
VOLUME /var/www/documents

View File

@@ -4,13 +4,13 @@ Docker image for Dolibarr with auto installer on first boot.
## Supported tags
* 6.0.8-php7.1 6.0.8
* 7.0.5-php7.2 7.0.5
* 8.0.6-php7.2 8.0.6
* 9.0.4-php7.2 9.0.4-php7.3 9.0.4
* 10.0.7-php7.2 10.0.7-php7.3 10.0.7
* 11.0.5-php7.2 11.0.5-php7.3 11.0.5-php7.4 11.0.5
* 12.0.1-php7.2 12.0.1-php7.3 12.0.1-php7.4 12.0.1 latest
* 6.0.8-php5.6 6.0.8-php7.1 6.0.8 6
* 7.0.5-php5.6 7.0.5-php7.2 7.0.5 7
* 8.0.6-php5.6 8.0.6-php7.2 8.0.6 8
* 9.0.4-php5.6 9.0.4-php7.3 9.0.4 9
* 10.0.7-php5.6 10.0.7-php7.3 10.0.7 10
* 11.0.5-php5.6 11.0.5-php7.4 11.0.5 11
* 12.0.1-php5.6 12.0.1-php7.4 12.0.1 12 latest
## What is Dolibarr ?
@@ -29,13 +29,14 @@ Let's use [Docker Compose](https://docs.docker.com/compose/) to integrate it wit
Create `docker-compose.yml` file as following:
```
mariadb:
services:
mariadb:
image: mariadb:latest
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: dolibarr
web:
web:
image: tuxgasy/dolibarr
environment:
DOLI_DB_HOST: mariadb

View File

@@ -23,13 +23,14 @@ Let's use [Docker Compose](https://docs.docker.com/compose/) to integrate it wit
Create `docker-compose.yml` file as following:
```
mariadb:
services:
mariadb:
image: mariadb:latest
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: dolibarr
web:
web:
image: tuxgasy/dolibarr
environment:
DOLI_DB_HOST: mariadb

View File

@@ -1,3 +1,4 @@
version: '3'
# This docker-compose.yml file is used to build and test quickly
# a specific version of Dolibarr
#
@@ -7,15 +8,28 @@
# $ docker-compose up
#
# More informations about Docker-compose : https://docs.docker.com/compose/
networks:
intenal-pod:
internal: true
external-pod:
internal: false
mariadb:
services:
mariadb:
image: mariadb:latest
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: dolibarr
networks:
- intenal-pod
web:
build: ./images/$DOLI_VERSION
web:
build:
context: ./docker-compose-links/${DOLI_VERSION}${PHP_VERSION}
image: tuxgasy/dolibarr:${DOLI_VERSION}${PHP_VERSION}
depends_on:
- mariadb
environment:
DOLI_DB_HOST: mariadb
DOLI_DB_USER: root
@@ -26,5 +40,6 @@ web:
WWW_GROUP_ID: 1000
ports:
- "80:80"
links:
- mariadb
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 \
&& apt-get install -y --no-install-recommends \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
libjpeg-dev \
libldap2-dev \
libxml2-dev \
libzip-dev \
mysql-client \
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 \
@@ -35,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION
ENV DOLI_VERSION 10.0.7
# Get Dolibarr
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/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \
rm -rf /tmp/* && \
mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80
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 \
default-mysql-client \
unzip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& 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 && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION
ENV DOLI_VERSION 11.0.5
# Get Dolibarr
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/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \
rm -rf /tmp/* && \
mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80
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 \
default-mysql-client \
unzip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& 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 && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION
ENV DOLI_VERSION 12.0.1
# Get Dolibarr
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/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \
rm -rf /tmp/* && \
mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80
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>
@@ -29,14 +29,15 @@ RUN apt-get update -y \
libzip-dev \
default-mysql-client \
unzip \
&& apt-get autoremove -y \
&& 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-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
ENV DOLI_VERSION 6.0.8
# Get Dolibarr
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/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \
rm -rf /tmp/* && \
mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80
VOLUME /var/www/documents

View File

@@ -21,13 +21,15 @@ 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 \
libjpeg-dev \
libldap2-dev \
libxml2-dev \
libzip-dev \
mysql-client \
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 \
@@ -35,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION
ENV DOLI_VERSION 6.0.8
# Get Dolibarr
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/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \
rm -rf /tmp/* && \
mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80
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>
@@ -21,13 +21,15 @@ 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 \
libjpeg-dev \
libldap2-dev \
libxml2-dev \
libzip-dev \
mysql-client \
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 \
@@ -35,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION
ENV DOLI_VERSION 7.0.5
# Get Dolibarr
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/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \
rm -rf /tmp/* && \
mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80
VOLUME /var/www/documents

View File

@@ -21,13 +21,15 @@ 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 \
libjpeg-dev \
libldap2-dev \
libxml2-dev \
libzip-dev \
mysql-client \
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 \
@@ -35,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION
ENV DOLI_VERSION 7.0.5
# Get Dolibarr
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/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \
rm -rf /tmp/* && \
mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80
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>
@@ -21,13 +21,15 @@ 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 \
libjpeg-dev \
libldap2-dev \
libxml2-dev \
libzip-dev \
mysql-client \
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 \
@@ -35,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION
ENV DOLI_VERSION 8.0.6
# Get Dolibarr
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/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \
rm -rf /tmp/* && \
mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80
VOLUME /var/www/documents

View File

@@ -21,13 +21,15 @@ 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 \
libjpeg-dev \
libldap2-dev \
libxml2-dev \
libzip-dev \
mysql-client \
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 \
@@ -35,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION
ENV DOLI_VERSION 8.0.6
# Get Dolibarr
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/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \
rm -rf /tmp/* && \
mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80
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>
@@ -21,13 +21,15 @@ 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 \
libjpeg-dev \
libldap2-dev \
libxml2-dev \
libzip-dev \
mysql-client \
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 \
@@ -35,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION
ENV DOLI_VERSION 9.0.4
# Get Dolibarr
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/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \
rm -rf /tmp/* && \
mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80
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 \
&& apt-get install -y --no-install-recommends \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
libjpeg-dev \
libldap2-dev \
libxml2-dev \
libzip-dev \
mysql-client \
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 \
@@ -35,7 +37,7 @@ RUN apt-get update -y \
&& docker-php-ext-install -j$(nproc) ldap && \
mv ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
ARG DOLI_VERSION
ENV DOLI_VERSION 9.0.4
# Get Dolibarr
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/ && \
ln -s /var/www/html /var/www/htdocs && \
cp -r /tmp/dolibarr/dolibarr-${DOLI_VERSION}/scripts /var/www/ && \
rm -rf /tmp/dolibarr && \
rm -rf /tmp/* && \
mkdir -p /var/www/documents
ENV DOLI_VERSION=${DOLI_VERSION}
EXPOSE 80
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
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=""
rm -rf images/
rm -rf ${BASE_DIR}/images ${BASE_DIR}/docker-compose-links
for version in ${versions[@]}; do
echo "Generate Dockerfile for Dolibarr ${version}"
for dolibarrVersion in ${DOLIBARR_VERSIONS[@]}; do
echo "Generate Dockerfile for Dolibarr ${dolibarrVersion}"
tags="${tags}\n\* "
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
if [ "$version" = "6.0.8" ]; then #Version discontinued
php_versions=( "7.1" )
elif [ "$version" = "7.0.5" ]; then
php_versions=( "7.2" )
elif [ "$version" = "8.0.6" ]; then
php_versions=( "7.2" )
elif [ "$version" = "9.0.4" ]; then
php_versions=( "7.2" "7.3" )
elif [ "$version" = "10.0.7" ]; then
php_versions=( "7.2" "7.3" )
elif [ "$version" = "11.0.5" ]; then
php_versions=( "7.2" "7.3" "7.4" )
elif [ "$version" = "12.0.1" ]; then
php_versions=( "7.2" "7.3" "7.4" )
if [ "${dolibarrMajor}" = "6" ]; then #Version discontinued
php_base_images=( "5.6-apache-stretch" "7.1-apache-stretch" )
elif [ "${dolibarrMajor}" = "7" ]; then
php_base_images=( "5.6-apache-stretch" "7.2-apache-stretch" )
elif [ "${dolibarrMajor}" = "8" ]; then
php_base_images=( "5.6-apache-stretch" "7.2-apache-stretch" )
elif [ "${dolibarrMajor}" = "9" ]; then
php_base_images=( "5.6-apache-stretch" "7.3-apache-stretch" )
elif [ "${dolibarrMajor}" = "10" ]; then
php_base_images=( "5.6-apache-stretch" "7.3-apache-stretch" )
elif [ "${dolibarrMajor}" = "11" ]; then
php_base_images=( "5.6-apache-stretch" "7.4-apache" )
elif [ "${dolibarrMajor}" = "12" ]; then
php_base_images=( "5.6-apache-stretch" "7.4-apache" )
else
php_versions=( "7.3" "7.4" )
php_base_images=( "7.4-apache" )
fi
for php_version in ${php_versions[@]}; do
currentTag="${version}-php${php_version}"
dir="images/${currentTag}"
for php_base_image in ${php_base_images[@]}; do
php_version=`echo ${php_base_image} | cut -d\- -f1`
currentTag="${dolibarrVersion}-php${php_version}"
dir=${BASE_DIR}/"images/${currentTag}"
tags="${tags}${currentTag} "
mkdir -p $dir
if [ -f Dockerfile_${php_version}.template ]; then
sed 's/%PHP_VERSION%/'"${php_version}"'/;' Dockerfile_${php_version}.template > ${dir}/Dockerfile
if [ "${php_version}" = "7.4" ]; then
gd_config_args="\-\-with\-freetype\ \-\-with\-jpeg"
else
sed 's/%PHP_VERSION%/'"${php_version}"'/;' Dockerfile.template > ${dir}/Dockerfile
gd_config_args="\-\-with\-png\-dir=\/usr\ \-\-with-jpeg-dir=\/usr"
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}
#docker push tuxgasy/dolibarr:${currentTag}
cp ${BASE_DIR}/docker-run.sh ${dir}/docker-run.sh
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
#docker tag tuxgasy/dolibarr:${currentTag} tuxgasy/dolibarr:${version}
#docker push tuxgasy/dolibarr:${version}
if [ ${DOCKER_BUILD} -eq 1 ]; then
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
#docker tag tuxgasy/dolibarr:${version} tuxgasy/dolibarr:latest
#docker push tuxgasy/dolibarr:latest
if [ ${DOCKER_BUILD} -eq 1 ]; then
docker tag tuxgasy/dolibarr:${dolibarrVersion} tuxgasy/dolibarr:latest
fi
if [ ${DOCKER_PUSH} -eq 1 ]; then
docker push tuxgasy/dolibarr:latest
fi
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" )