diff options
| -rw-r--r-- | Applications/phpmyadmin/Dockerfile | 15 | ||||
| -rw-r--r-- | Applications/phpmyadmin/config.inc.php | 157 | ||||
| -rw-r--r-- | Applications/phpmyadmin/docker-compose.yml | 19 | ||||
| -rw-r--r-- | Services/apache/README.md | 2 | ||||
| -rw-r--r-- | Services/apache/docker-compose.yml | 1 | ||||
| -rw-r--r-- | Services/apache/httpd.conf | 2 | ||||
| -rw-r--r-- | Services/apache/sx-httpd.sh | 2 | ||||
| -rw-r--r-- | Services/php/Dockerfile | 10 | ||||
| -rw-r--r-- | Services/php/README.md | 18 | ||||
| -rw-r--r-- | Services/php/docker-compose.yml | 7 | ||||
| -rw-r--r-- | Services/php/httpd.conf | 2 | 
11 files changed, 199 insertions, 36 deletions
diff --git a/Applications/phpmyadmin/Dockerfile b/Applications/phpmyadmin/Dockerfile index 88d2b84..21de57a 100644 --- a/Applications/phpmyadmin/Dockerfile +++ b/Applications/phpmyadmin/Dockerfile @@ -1,11 +1,14 @@  FROM startx/sv-php  MAINTAINER Christophe LARUE <dev@startx.fr> -RUN dnf -y install phpMyAdmin \ -    && dnf clean all -COPY config.php /etc/phpMyAdmin/config.inc.php -COPY test.php /var/www/html/test.php +RUN cd $TMP_APP_PATH && \ +    wget -q https://files.phpmyadmin.net/phpMyAdmin/4.5.2/phpMyAdmin-4.5.2-all-languages.zip && \ +    unzip phpMyAdmin-4.5.2-all-languages.zip && \ +    rm -f phpMyAdmin-4.5.2-all-languages.zip && \ +    mv phpMyAdmin-4.5.2-all-languages pma  +COPY config.inc.php $TMP_APP_PATH/pma/config.inc.php +COPY test.php $TMP_APP_PATH/pma/test.php  EXPOSE 80 443 -VOLUME ["/var/www/html", "/var/log/httpd"] -CMD ["/sx/httpd_run.sh"]
\ No newline at end of file +VOLUME [$APP_PATH,$LOG_PATH] +CMD ["/bin/run.sh"]
\ No newline at end of file diff --git a/Applications/phpmyadmin/config.inc.php b/Applications/phpmyadmin/config.inc.php new file mode 100644 index 0000000..5c73c2e --- /dev/null +++ b/Applications/phpmyadmin/config.inc.php @@ -0,0 +1,157 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * phpMyAdmin sample configuration, you can use it as base for + * manual configuration. For easier setup you can use setup/ + * + * All directives are explained in documentation in the doc/ folder + * or at <http://docs.phpmyadmin.net/>. + * + * @package PhpMyAdmin + */ + +/** + * This is needed for cookie based authentication to encrypt password in + * cookie + */ +$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ + +/** + * Servers configuration + */ +$i = 0; + +/** + * First server + */ +$i++; +/* Authentication type */ +$cfg['Servers'][$i]['auth_type'] = 'cookie'; +/* Server parameters */ +$cfg['Servers'][$i]['host'] = 'localhost'; +$cfg['Servers'][$i]['connect_type'] = 'tcp'; +$cfg['Servers'][$i]['compress'] = false; +$cfg['Servers'][$i]['AllowNoPassword'] = false; + +/** + * phpMyAdmin configuration storage settings. + */ + +/* User used to manipulate with storage */ +// $cfg['Servers'][$i]['controlhost'] = ''; +// $cfg['Servers'][$i]['controlport'] = ''; +// $cfg['Servers'][$i]['controluser'] = 'pma'; +// $cfg['Servers'][$i]['controlpass'] = 'pmapass'; + +/* Storage database and tables */ +// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; +// $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; +// $cfg['Servers'][$i]['relation'] = 'pma__relation'; +// $cfg['Servers'][$i]['table_info'] = 'pma__table_info'; +// $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords'; +// $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages'; +// $cfg['Servers'][$i]['column_info'] = 'pma__column_info'; +// $cfg['Servers'][$i]['history'] = 'pma__history'; +// $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs'; +// $cfg['Servers'][$i]['tracking'] = 'pma__tracking'; +// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; +// $cfg['Servers'][$i]['recent'] = 'pma__recent'; +// $cfg['Servers'][$i]['favorite'] = 'pma__favorite'; +// $cfg['Servers'][$i]['users'] = 'pma__users'; +// $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups'; +// $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding'; +// $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches'; +// $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns'; +// $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings'; +// $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates'; +/* Contrib / Swekey authentication */ +// $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf'; + +/** + * End of servers configuration + */ + +/** + * Directories for saving/loading files from server + */ +$cfg['UploadDir'] = ''; +$cfg['SaveDir'] = ''; + +/** + * Whether to display icons or text or both icons and text in table row + * action segment. Value can be either of 'icons', 'text' or 'both'. + * default = 'both' + */ +//$cfg['RowActionType'] = 'icons'; + +/** + * Defines whether a user should be displayed a "show all (records)" + * button in browse mode or not. + * default = false + */ +//$cfg['ShowAll'] = true; + +/** + * Number of rows displayed when browsing a result set. If the result + * set contains more rows, "Previous" and "Next". + * Possible values: 25, 50, 100, 250, 500 + * default = 25 + */ +//$cfg['MaxRows'] = 50; + +/** + * Disallow editing of binary fields + * valid values are: + *   false    allow editing + *   'blob'   allow editing except for BLOB fields + *   'noblob' disallow editing except for BLOB fields + *   'all'    disallow editing + * default = 'blob' + */ +//$cfg['ProtectBinary'] = false; + +/** + * Default language to use, if not browser-defined or user-defined + * (you find all languages in the locale folder) + * uncomment the desired line: + * default = 'en' + */ +//$cfg['DefaultLang'] = 'en'; +//$cfg['DefaultLang'] = 'de'; + +/** + * How many columns should be used for table display of a database? + * (a value larger than 1 results in some information being hidden) + * default = 1 + */ +//$cfg['PropertiesNumColumns'] = 2; + +/** + * Set to true if you want DB-based query history.If false, this utilizes + * JS-routines to display query history (lost by window close) + * + * This requires configuration storage enabled, see above. + * default = false + */ +//$cfg['QueryHistoryDB'] = true; + +/** + * When using DB-based query history, how many entries should be kept? + * default = 25 + */ +//$cfg['QueryHistoryMax'] = 100; + +/** + * Whether or not to query the user before sending the error report to + * the phpMyAdmin team when a JavaScript error occurs + * + * Available options + * ('ask' | 'always' | 'never') + * default = 'ask' + */ +//$cfg['SendErrorReports'] = 'always'; + +/** + * You can find more configuration options in the documentation + * in the doc/ folder or at <http://docs.phpmyadmin.net/>. + */ diff --git a/Applications/phpmyadmin/docker-compose.yml b/Applications/phpmyadmin/docker-compose.yml new file mode 100644 index 0000000..9a8d4d9 --- /dev/null +++ b/Applications/phpmyadmin/docker-compose.yml @@ -0,0 +1,19 @@ +server: +  build: ./ +  container_name: "application-phpmyadmin" +  mem_limit: 500m +  memswap_limit: 500m +  cpu_shares: 2 +  restart: "on-failure:2" +  ports: +    - "9215:80" +    - "9216:443" +  environment: +    CONTAINER_TYPE: "application" +    CONTAINER_SERVICE: "phpmyadmin" +    CONTAINER_INSTANCE: "application-phpmyadmin" +    SERVER_NAME: "localhost" +    DOC_ROOT: "/data/apache" +  volumes: +    - "/tmp/container/logs/phpmyadmin:/data/logs/apache_php" +    - "/tmp/container/phpmyadmin:/data/apache_php"
\ No newline at end of file diff --git a/Services/apache/README.md b/Services/apache/README.md index 9db6367..ed737e1 100644 --- a/Services/apache/README.md +++ b/Services/apache/README.md @@ -29,7 +29,6 @@ service:      CONTAINER_SERVICE: "apache"      CONTAINER_INSTANCE: "service-apache"      SERVER_NAME: "localhost" -    DOC_ROOT: "/data/apache"    volumes:      - "/tmp/container/logs/apache:/data/logs/apache"      - "/tmp/container/apache:/data/apache" @@ -91,7 +90,6 @@ CMD ["/bin/run.sh"]  | CONTAINER_SERVICE         | `string` | `no`      | Define the type of service or application provided  | SERVER_NAME               | `string` | `no`      | Server name for this container. If no name localhost will be assigned  | HOSTNAME                  | `auto`   | `auto`    | Container unique id automatically assigned by docker daemon at startup -| DOC_ROOT                  | `auto`   | `auto`    | document root, will use the $APP_PATH variable  | LOG_PATH                  | `auto`   | `auto`    | default set to /data/logs/apache and used as a volume mountpoint  | APP_PATH                  | `auto`   | `auto`    | default set to /data/apache and used as a volume mountpoint diff --git a/Services/apache/docker-compose.yml b/Services/apache/docker-compose.yml index 44c8a5b..57bacf0 100644 --- a/Services/apache/docker-compose.yml +++ b/Services/apache/docker-compose.yml @@ -13,7 +13,6 @@ server:      CONTAINER_SERVICE: "apache"      CONTAINER_INSTANCE: "service-apache"      SERVER_NAME: "localhost" -    DOC_ROOT: "/data/apache"    volumes:      - "/tmp/container/logs/apache:/data/logs/apache"      - "/tmp/container/apache:/data/apache"
\ No newline at end of file diff --git a/Services/apache/httpd.conf b/Services/apache/httpd.conf index 97672b4..f1bc5af 100644 --- a/Services/apache/httpd.conf +++ b/Services/apache/httpd.conf @@ -1,7 +1,7 @@  #  # This file will be copied into /etc/httpd/conf.d/app.conf and loaded when httpd start  # -DocumentRoot ${DOC_ROOT} +DocumentRoot ${APP_PATH}  ServerName ${SERVER_NAME}  ServerAdmin cl@startx.fr diff --git a/Services/apache/sx-httpd.sh b/Services/apache/sx-httpd.sh index 0344f1e..1adec4e 100644 --- a/Services/apache/sx-httpd.sh +++ b/Services/apache/sx-httpd.sh @@ -11,8 +11,6 @@ function check_httpd_environment {      if [ ! -v APP_PATH ]; then          APP_PATH="/data/apache"          export APP_PATH -        DOC_ROOT=$APP_PATH -        export DOC_ROOT      fi      if [ ! -v LOG_PATH ]; then          LOG_PATH="/data/logs/apache" diff --git a/Services/php/Dockerfile b/Services/php/Dockerfile index 7cb96b5..58653a8 100644 --- a/Services/php/Dockerfile +++ b/Services/php/Dockerfile @@ -8,19 +8,11 @@ RUN dnf -y install php php-pecl-mongo php-cli php-pear \          php-bcmath php-pecl-zip php-php-gettext php-tcpdf \          php-tcpdf-dejavu-sans-fonts php-tidy \      && dnf clean all   -ENV LOG_PATH=/data/logs/apache_php  \ -    APP_PATH=/data/apache_php \ -    STARTUPLOG=/data/logs/apache_php/startup.log \ -    TMP_APP_PATH=/tmp/apache  COPY httpd.conf $HTTPDCONF  COPY php.ini /etc/php.d/sx.ini  COPY run.sh /bin/  RUN chmod 775 /bin/run.sh && \ -    chmod ug+r $HTTPDCONF && \ -    mkdir -p $TMP_APP_PATH && \ -    mkdir -p $APP_PATH && \ -    mkdir -p $LOG_PATH && \ -    touch $STARTUPLOG +    chmod ug+r $HTTPDCONF  COPY ./ $TMP_APP_PATH  RUN rm -f $TMP_APP_PATH/Dockerfile $TMP_APP_PATH/httpd.conf $TMP_APP_PATH/run.sh && \      chown -R apache:apache $TMP_APP_PATH $APP_PATH $LOG_PATH && \ diff --git a/Services/php/README.md b/Services/php/README.md index ffce3c7..4e350b3 100644 --- a/Services/php/README.md +++ b/Services/php/README.md @@ -29,10 +29,9 @@ service:      CONTAINER_SERVICE: "php"      CONTAINER_INSTANCE: "service-php"      SERVER_NAME: "localhost" -    DOC_ROOT: "/data/apache_php"    volumes: -    - "/tmp/container/logs/php:/data/logs/apache_php" -    - "/tmp/container/php:/data/apache_php" +    - "/tmp/container/logs/php:/data/logs/apache" +    - "/tmp/container/php:/data/apache"  ```  ## Docker-compose in various situations @@ -91,9 +90,8 @@ CMD ["/bin/run.sh"]  | CONTAINER_SERVICE         | `string` | `no`      | Define the type of service or application provided  | SERVER_NAME               | `string` | `no`      | Server name for this container. If no name localhost will be assigned  | HOSTNAME                  | `auto`   | `auto`    | Container unique id automatically assigned by docker daemon at startup -| DOC_ROOT                  | `auto`   | `auto`    | document root, will use the $APP_PATH variable -| LOG_PATH                  | `auto`   | `auto`    | default set to /data/logs/apache_php and used as a volume mountpoint -| APP_PATH                  | `auto`   | `auto`    | default set to /data/apache_php and used as a volume mountpoint +| LOG_PATH                  | `auto`   | `auto`    | default set to /data/logs/apache and used as a volume mountpoint +| APP_PATH                  | `auto`   | `auto`    | default set to /data/apache and used as a volume mountpoint  ## Exposed port @@ -106,8 +104,8 @@ CMD ["/bin/run.sh"]  | Container directory  | Description                                                              |  |----------------------|--------------------------------------------------------------------------| -| /data/logs/apache_php    | log directory used to record container and php logs -| /data/apache_php         | data directory served by php. If empty will be filled with app on startup. In other case use content from mountpoint or data volumes +| /data/logs/apache    | log directory used to record container and php logs +| /data/apache         | data directory served by php. If empty will be filled with app on startup. In other case use content from mountpoint or data volumes  ## Testing the service @@ -128,8 +126,8 @@ You must have a working environment with the source code of this repository. Rea  1. Jump into the container directory with `cd Services/php`  2. Build the container using `docker build -t sv-php .`  3. Run this container  -  1. Interactively with `docker run -p 80:80 -v /data/logs/apache_php -it sv-php`. If you add a second parameter (like `/bin/bash`) to will run this command instead of the default entrypoint. Usefull to interact with this container (ex: `/bin/bash`, `/bin/ps -a`, `/bin/df -h`,...)  -  2. As a daemon with `docker run -p 80:80 -v /data/logs/apache_php -d sv-php` +  1. Interactively with `docker run -p 80:80 -v /data/logs/apache -it sv-php`. If you add a second parameter (like `/bin/bash`) to will run this command instead of the default entrypoint. Usefull to interact with this container (ex: `/bin/bash`, `/bin/ps -a`, `/bin/df -h`,...)  +  2. As a daemon with `docker run -p 80:80 -v /data/logs/apache -d sv-php`  ### Build & run a container using `docker-compose` diff --git a/Services/php/docker-compose.yml b/Services/php/docker-compose.yml index 16a5496..22b7585 100644 --- a/Services/php/docker-compose.yml +++ b/Services/php/docker-compose.yml @@ -11,9 +11,8 @@ server:    environment:      CONTAINER_TYPE: "service"      CONTAINER_SERVICE: "php" -    CONTAINER_INSTANCE: "service-apache_php" +    CONTAINER_INSTANCE: "service-php"      SERVER_NAME: "localhost" -    DOC_ROOT: "/data/apache_php"    volumes: -    - "/tmp/container/logs/apache_php:/data/logs/apache_php" -    - "/tmp/container/apache_php:/data/apache_php"
\ No newline at end of file +    - "/tmp/container/logs/php:/data/logs/apache" +    - "/tmp/container/php:/data/apache"
\ No newline at end of file diff --git a/Services/php/httpd.conf b/Services/php/httpd.conf index 9cbe16a..e469e57 100644 --- a/Services/php/httpd.conf +++ b/Services/php/httpd.conf @@ -1,7 +1,7 @@  #  # This file will be copied into /etc/httpd/conf.d/app.conf and loaded when httpd start  # -DocumentRoot ${DOC_ROOT} +DocumentRoot ${APP_PATH}  ServerName ${SERVER_NAME}  ServerAdmin cl@startx.fr  | 
