Browse Source

Add docker-compose.yml file to build development environment based on Docker

TuxGasy 8 years ago
parent
commit
bb6b8015fe
3 changed files with 56 additions and 7 deletions
  1. 8 7
      Dockerfile
  2. 33 0
      docker-compose.yml
  3. 15 0
      docker-run.sh

+ 8 - 7
Dockerfile

@@ -1,4 +1,7 @@
-FROM php:5.6-apache
+FROM php:7.0-apache
+
+ENV HOST_USER_ID 33
+ENV PHP_INI_DATE_TIMEZONE 'UTC'
 
 RUN apt-get update && apt-get install -y libpng12-dev libjpeg-dev libldap2-dev \
 	&& rm -rf /var/lib/apt/lists/* \
@@ -9,11 +12,9 @@ RUN apt-get update && apt-get install -y libpng12-dev libjpeg-dev libldap2-dev \
         && docker-php-ext-install mysqli \
         && apt-get purge -y libpng12-dev libjpeg-dev libldap2-dev
 
-COPY htdocs/ /var/www/html/
-
-RUN chown -hR www-data:www-data /var/www/html
-
-VOLUME /var/www/html/conf
-VOLUME /var/www/html/documents
+COPY docker-run.sh /usr/local/bin/
+RUN chmod +x /usr/local/bin/docker-run.sh
 
 EXPOSE 80
+
+ENTRYPOINT ["docker-run.sh"]

+ 33 - 0
docker-compose.yml

@@ -0,0 +1,33 @@
+# This docker-compose.yml file is used to build and run Dolibarr
+# in the current workspace
+#
+# Before build/run, define the variable HOST_USER_ID as following:
+# $ export HOST_USER_ID=$(id -u)
+# And then, you can run :
+# $ docker-compose up
+
+mariadb:
+    image: mariadb:latest
+    environment:
+        MYSQL_ROOT_PASSWORD: root
+        MYSQL_DATABASE: dolibarr
+
+phpmyadmin:
+    image: phpmyadmin/phpmyadmin
+    environment:
+        PMA_HOST: mariadb
+    links:
+        - mariadb
+    ports:
+        - "8080:80"
+
+web:
+    build: .
+    environment:
+        HOST_USER_ID: $HOST_USER_ID
+    volumes:
+        - ./htdocs:/var/www/html
+    links:
+        - mariadb
+    ports:
+        - "80:80"

+ 15 - 0
docker-run.sh

@@ -0,0 +1,15 @@
+#!/bin/bash
+
+usermod -u $HOST_USER_ID www-data
+groupmod -g $HOST_USER_ID www-data
+
+chown -hR www-data:www-data /var/www
+
+if [ ! -f /usr/local/etc/php/php.ini ]; then
+  cat <<EOF > /usr/local/etc/php/php.ini
+date.timezone = $PHP_INI_DATE_TIMEZONE
+display_errors = On
+EOF
+fi
+
+exec apache2-foreground