From 7f9465928d5b149e4fb5f9bc476b8cb7298436fc Mon Sep 17 00:00:00 2001 From: startxfr Date: Mon, 7 Dec 2015 01:01:22 +0100 Subject: start refreshing application pma --- Applications/phpmyadmin/Dockerfile | 15 +-- Applications/phpmyadmin/config.inc.php | 157 +++++++++++++++++++++++++++++ Applications/phpmyadmin/docker-compose.yml | 19 ++++ Services/apache/README.md | 2 - Services/apache/docker-compose.yml | 1 - Services/apache/httpd.conf | 2 +- Services/apache/sx-httpd.sh | 2 - Services/php/Dockerfile | 10 +- Services/php/README.md | 18 ++-- Services/php/docker-compose.yml | 7 +- Services/php/httpd.conf | 2 +- 11 files changed, 199 insertions(+), 36 deletions(-) create mode 100644 Applications/phpmyadmin/config.inc.php create mode 100644 Applications/phpmyadmin/docker-compose.yml 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 -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 @@ +. + * + * @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 . + */ 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 -- cgit v1.2.1