Browse Source

Dolibarr: working version, but not yet satisfactory

Guilhem Saurel 6 years ago
parent
commit
9d7933c10b
5 changed files with 100 additions and 0 deletions
  1. 16 0
      dolibarr/Dockerfile.fpm
  2. 13 0
      dolibarr/Dockerfile.nginx
  3. 18 0
      dolibarr/README.md
  4. 34 0
      dolibarr/docker-compose.yml
  5. 19 0
      dolibarr/nginx.conf

+ 16 - 0
dolibarr/Dockerfile.fpm

@@ -0,0 +1,16 @@
+FROM alpine
+
+ENV DOLI_VERSION 8.0.2
+
+RUN wget -q https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar.gz \
+ && tar xf ${DOLI_VERSION}.tar.gz \
+ && mv dolibarr-${DOLI_VERSION}/htdocs . \
+ && rm -rf dolibarr-${DOLI_VERSION} ${DOLI_VERSION}.tar.gz
+
+FROM php:fpm-alpine
+
+RUN apk --no-cache add postgresql-dev libpng-dev \
+ && docker-php-ext-install gd pgsql
+
+COPY --from=0 htdocs /var/www/html
+RUN touch conf/conf.php && mkdir documents && chown www-data documents conf/conf.php

+ 13 - 0
dolibarr/Dockerfile.nginx

@@ -0,0 +1,13 @@
+FROM alpine
+
+ENV DOLI_VERSION 8.0.2
+
+RUN wget -q https://github.com/Dolibarr/dolibarr/archive/${DOLI_VERSION}.tar.gz \
+ && tar xf ${DOLI_VERSION}.tar.gz \
+ && mv dolibarr-${DOLI_VERSION}/htdocs . \
+ && rm -rf dolibarr-${DOLI_VERSION} ${DOLI_VERSION}.tar.gz
+
+FROM nginx:alpine
+
+COPY --from=0 htdocs /var/www/html
+ADD nginx.conf /etc/nginx/conf.d/default.conf

+ 18 - 0
dolibarr/README.md

@@ -0,0 +1,18 @@
+# Dolibarr
+
+```
+echo POSTGRES_PASSWORD=$(openssl rand -base64 32) >> .env
+docker-compose up -d --build
+```
+
+Go to your webbrowser to finish installation:
+- DB name / DB host / DB user: `postgres`
+- DB password: look inside .env
+- DB port: empty
+
+- create admin user / password
+
+```
+docker-compose exec app touch documents/install.lock
+docker-compose exec app chmod -w conf/conf.php documents/install.lock
+```

+ 34 - 0
dolibarr/docker-compose.yml

@@ -0,0 +1,34 @@
+version: '3'
+
+networks:
+  proxytanet:
+    external: true
+
+services:
+  postgres:
+    image: postgres:10-alpine
+    restart: unless-stopped
+    env_file:
+      - .env
+    volumes:
+      - ${CHATONS_ROOT_DIR:-/srv/chatons}/dolibarr/sql:/var/lib/postgresql/data
+
+  app:
+    build:
+      context: .
+      dockerfile: Dockerfile.fpm
+    restart: unless-stopped
+    env_file:
+      - .env
+
+  web:
+    build:
+      context: .
+      dockerfile: Dockerfile.nginx
+    labels:
+      traefik.enable: "true"
+      traefik.frontend.rule: "Host: dolibarr.${CHATONS_DOMAIN:-local}, www.dolibarr.${CHATONS_DOMAIN:-local}"
+      traefik.docker.network: "proxytanet"
+    networks:
+      - proxytanet
+      - default

+ 19 - 0
dolibarr/nginx.conf

@@ -0,0 +1,19 @@
+server {
+    listen 80;
+    root /var/www/html;
+    index index.php index.html;
+    location ~ [^/]\.php(/|$) {
+        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
+        if (!-f $document_root$fastcgi_script_name) {
+            return 404;
+        }
+        # Mitigate https://httpoxy.org/ vulnerabilities
+        fastcgi_param HTTP_PROXY "";
+
+        fastcgi_pass app:9000;
+        fastcgi_index index.php;
+
+        include fastcgi_params;
+        fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
+    }
+}