From 4bb17b8c05c6e430293217797eef694671ec1e1b Mon Sep 17 00:00:00 2001 From: startxfr <clarue@startx.fr> Date: Sat, 28 Nov 2015 15:15:52 +0100 Subject: final change in script lib for OS. Change in apache and php services --- Services/php/Dockerfile | 17 +++++----- Services/php/app/index.php | 70 ----------------------------------------- Services/php/docker-compose.yml | 15 +++++++++ Services/php/httpd.conf | 15 +++++++-- Services/php/index.php | 70 +++++++++++++++++++++++++++++++++++++++++ Services/php/run.sh | 58 ++++++++++++++++++++++++++++++++++ 6 files changed, 166 insertions(+), 79 deletions(-) delete mode 100644 Services/php/app/index.php create mode 100644 Services/php/docker-compose.yml create mode 100644 Services/php/index.php create mode 100644 Services/php/run.sh (limited to 'Services/php') diff --git a/Services/php/Dockerfile b/Services/php/Dockerfile index 60985df..b46f098 100644 --- a/Services/php/Dockerfile +++ b/Services/php/Dockerfile @@ -8,14 +8,17 @@ 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 -# Copy application content -COPY app/* /var/www/html/ -COPY httpd.conf /etc/httpd/conf.d/sx.conf +COPY httpd.conf /etc/httpd/conf.d/app.conf COPY php.ini /etc/php.d/sx.ini -RUN chmod ug+r /var/www/html/* \ - && chown -R apache:apache /var/www/html /var/log/httpd +COPY run.sh /bin/ +RUN chmod 775 /bin/run.sh && \ + chmod ug+r /etc/httpd/conf.d/app.conf +COPY ./ /data/www +RUN rm -f /data/www/Dockerfile /data/www/httpd.conf /data/www/run.sh && \ + chown -R apache:apache /data/www /data/logs && \ + chmod ug+r -R /data/www EXPOSE 80 EXPOSE 443 -VOLUME ["/var/www/html", "/var/log/httpd"] -CMD ["/sx/httpd_run.sh"] \ No newline at end of file +VOLUME ["/data/www","/data/logs"] +CMD ["/bin/run.sh"] \ No newline at end of file diff --git a/Services/php/app/index.php b/Services/php/app/index.php deleted file mode 100644 index 411b39b..0000000 --- a/Services/php/app/index.php +++ /dev/null @@ -1,70 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <title>STARTX Webserver container</title> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> - <style> - body {font-family: Helvetica, Arial, sans-serif;font-size: 14px;color: #333;padding: 0;margin: 0;} - body > header { width: 900px; padding: 1em; margin: 0 auto 1em auto } - body > article {box-shadow: 5px 5px 10px rgba(0,0,0,0.8); padding: 0 0 .5em 0; border-radius: 5px; width: 900px; margin: 2em auto 0 auto } - body > footer { width: 900px; padding: 0em 0 1em 1em; margin: 1.1em auto 1em auto; color: white; font-size: .75em } - h1 { margin: 0; font-size: 3em; line-height: .8em } - h2 { text-shadow: 1px 1px 1px rgba(0,0,0,0.25); font-size: 2.2em;margin: .2em; } - h3 { text-shadow: 1px 1px 0px rgba(255,255,255,1); font-size: 1.5em;margin: .2em; } - h4 { font-size: 1.2em; margin: .2em; } - p { font-size: 1em; margin: .5em .2em; } - ul { - padding-bottom: 1em; - padding-left: 2em; - } - a { - color: white; - text-decoration: none; - background: transparent !important; - } - body > header h1 { color: #000e44; text-shadow: 0 0 3px rgb(255,255,255), 0 0 10px rgba(255,255,255,1), 0 0 20px rgba(255,255,255,0.6); float: left } - body > header h1 span { color: #0c6f5e } - body > header h2 { color: white; font-size: .7em; font-weight: normal; margin: 2.2em 0 0 1em; float: left } - body > header h3 { color: #0c6f5e; margin: 0; font-size: 2em; float: right } - article header { margin: 0;padding: .3em; box-shadow: 0 0 5px rgba(0,0,0,0.9); border-radius: 5px 5px 0 0; width: 892px; } - article h3 { display: inline; } - article > details { margin: 1em; } - - - body#error { background-color : #533;} - #error article { color : darkred; background-color : rgba(255,255,255,0.9); clear: both } - #error article h2 { color : white; text-shadow: 0 0 2px white, 0 0 15px #600, 3px 3px 8px rgba(50,0,0,0.9); } - #error article header { background-color : rgba(85,51,51,0.6); } - #error h3, #error article a { color : #744; } - #error article a:hover { color : #533; } - #error pre.xdebug-var-dump {font-size:0.8em} - - body#answer { background-color : #353 } - #answer article { color : #575;background-color : rgba(255,255,255,0.9); clear: both } - #answer article h2 { color : white; text-shadow: 0 0 2px rgba(11,45,11,0.9), 0 0 10px rgba(11,45,11,0.8); } - #answer article header { background-color : rgba(51,85,51,0.6); } - #answer h3, #answer article a { color : #686; } - #answer article a:hover { color : #353; } - </style> - </head> - <body id="answer"> - <header> - <h1><span>STARTX</span> PHP Webserver</h1> - <h3>Online</h3> - </header> - <article> - <header> - <h2>Congratulation !!!</h2> - </header> - <p> - You are actually running an apache webserver + php running under the latest fedora release. For more information about this container and how to add your content instead of this message, please read the following links. - <ul> - <li><a href="https://github.com/startxfr/docker-images/tree/master/Services/php" target="_blank">See this container Dockerfile</a></li> - <li><a href="https://github.com/startxfr/docker-images" target="_blank">STARTX github docker images repository</a></li> - <li><a href="https://registry.hub.docker.com/u/startx/" target="_blank">STARTX Dockerhub profile</a></li> - </ul> - <?php phpinfo(); ?> - </p> - </article> - <footer><p>© 2015 - <a href="https://github.com/startxfr" target="_blank">STARTX</a> - <a href="https://www.startx.fr" target="_blank">STARTX Dev Team</a></p></footer> -</body></html> \ No newline at end of file diff --git a/Services/php/docker-compose.yml b/Services/php/docker-compose.yml new file mode 100644 index 0000000..b8130ef --- /dev/null +++ b/Services/php/docker-compose.yml @@ -0,0 +1,15 @@ +apache: + build: ./ +# image: sx-apache + container_name: "sx-apache" + mem_limit: 1g + memswap_limit: 2g + cpu_shares: 2 + restart: "on-failure:2" + environment: + CONTAINER_TYPE: "service" + CONTAINER_SERVICE: "apache" + CONTAINER_INSTANCE: "sx-apache" + volumes: + - "/tmp/container/logs:/data/logs" + - "/tmp/container/www:/data/www" \ No newline at end of file diff --git a/Services/php/httpd.conf b/Services/php/httpd.conf index 2cb8301..3a51a63 100644 --- a/Services/php/httpd.conf +++ b/Services/php/httpd.conf @@ -1,8 +1,19 @@ # -# This file will be copied into /etc/httpd/conf.d/sx.conf and loaded when httpd start +# This file will be copied into /etc/httpd/conf.d/app.conf and loaded when httpd start # ServerAdmin cl@startx.fr -<Directory "/var/www/html"> +ErrorLog "/data/logs/httpd_error.log" + +<IfModule log_config_module> + CustomLog "/data/logs/httpd_access.log" combined +</IfModule> + +Alias / /data/www +<Directory "/data/www"> + AddDefaultCharset UTF-8 AllowOverride All + Order Allow,Deny + Allow from All + Require all granted DirectoryIndex index.php index.html </Directory> diff --git a/Services/php/index.php b/Services/php/index.php new file mode 100644 index 0000000..411b39b --- /dev/null +++ b/Services/php/index.php @@ -0,0 +1,70 @@ +<!DOCTYPE html> +<html> + <head> + <title>STARTX Webserver container</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <style> + body {font-family: Helvetica, Arial, sans-serif;font-size: 14px;color: #333;padding: 0;margin: 0;} + body > header { width: 900px; padding: 1em; margin: 0 auto 1em auto } + body > article {box-shadow: 5px 5px 10px rgba(0,0,0,0.8); padding: 0 0 .5em 0; border-radius: 5px; width: 900px; margin: 2em auto 0 auto } + body > footer { width: 900px; padding: 0em 0 1em 1em; margin: 1.1em auto 1em auto; color: white; font-size: .75em } + h1 { margin: 0; font-size: 3em; line-height: .8em } + h2 { text-shadow: 1px 1px 1px rgba(0,0,0,0.25); font-size: 2.2em;margin: .2em; } + h3 { text-shadow: 1px 1px 0px rgba(255,255,255,1); font-size: 1.5em;margin: .2em; } + h4 { font-size: 1.2em; margin: .2em; } + p { font-size: 1em; margin: .5em .2em; } + ul { + padding-bottom: 1em; + padding-left: 2em; + } + a { + color: white; + text-decoration: none; + background: transparent !important; + } + body > header h1 { color: #000e44; text-shadow: 0 0 3px rgb(255,255,255), 0 0 10px rgba(255,255,255,1), 0 0 20px rgba(255,255,255,0.6); float: left } + body > header h1 span { color: #0c6f5e } + body > header h2 { color: white; font-size: .7em; font-weight: normal; margin: 2.2em 0 0 1em; float: left } + body > header h3 { color: #0c6f5e; margin: 0; font-size: 2em; float: right } + article header { margin: 0;padding: .3em; box-shadow: 0 0 5px rgba(0,0,0,0.9); border-radius: 5px 5px 0 0; width: 892px; } + article h3 { display: inline; } + article > details { margin: 1em; } + + + body#error { background-color : #533;} + #error article { color : darkred; background-color : rgba(255,255,255,0.9); clear: both } + #error article h2 { color : white; text-shadow: 0 0 2px white, 0 0 15px #600, 3px 3px 8px rgba(50,0,0,0.9); } + #error article header { background-color : rgba(85,51,51,0.6); } + #error h3, #error article a { color : #744; } + #error article a:hover { color : #533; } + #error pre.xdebug-var-dump {font-size:0.8em} + + body#answer { background-color : #353 } + #answer article { color : #575;background-color : rgba(255,255,255,0.9); clear: both } + #answer article h2 { color : white; text-shadow: 0 0 2px rgba(11,45,11,0.9), 0 0 10px rgba(11,45,11,0.8); } + #answer article header { background-color : rgba(51,85,51,0.6); } + #answer h3, #answer article a { color : #686; } + #answer article a:hover { color : #353; } + </style> + </head> + <body id="answer"> + <header> + <h1><span>STARTX</span> PHP Webserver</h1> + <h3>Online</h3> + </header> + <article> + <header> + <h2>Congratulation !!!</h2> + </header> + <p> + You are actually running an apache webserver + php running under the latest fedora release. For more information about this container and how to add your content instead of this message, please read the following links. + <ul> + <li><a href="https://github.com/startxfr/docker-images/tree/master/Services/php" target="_blank">See this container Dockerfile</a></li> + <li><a href="https://github.com/startxfr/docker-images" target="_blank">STARTX github docker images repository</a></li> + <li><a href="https://registry.hub.docker.com/u/startx/" target="_blank">STARTX Dockerhub profile</a></li> + </ul> + <?php phpinfo(); ?> + </p> + </article> + <footer><p>© 2015 - <a href="https://github.com/startxfr" target="_blank">STARTX</a> - <a href="https://www.startx.fr" target="_blank">STARTX Dev Team</a></p></footer> +</body></html> \ No newline at end of file diff --git a/Services/php/run.sh b/Services/php/run.sh new file mode 100644 index 0000000..bcddd35 --- /dev/null +++ b/Services/php/run.sh @@ -0,0 +1,58 @@ +#!/bin/bash +source /bin/sx-lib.sh +export HTTPDCONF=/etc/httpd/conf.d/app.conf + +# Begin configuration before starting daemonized process +# and start generating host keys +function begin_config { + echo "=> BEGIN APACHE-PHP CONFIGURATION" + mkdir -p /var/run/httpd + if [ -v DOCROOT ]; then + echo "=> Changing document root to $DOCROOT" + ${DOCROOT=/data/www} + echo "DocumentRoot \"$DOCROOT\"" >> $HTTPDCONF + fi +} + +# End configuration process just before starting daemon +function end_config { + stop_server + echo "=> END APACHE-PHP CONFIGURATION" +} + +# Start the httpd server in background. Used to perform config +# against the database structure such as user creation +function start_server { + echo "=> Starting httpd + php server" + /usr/sbin/apachectl & + sleep 2 +} + +# Stop the httpd server running in background. +function stop_server { + echo "=> Stopping httpd + php server ..." + killall httpd + rm -rf /run/httpd/* + sleep 2 +} + +# Start the httpd server as a deamon and execute it inside +# the running shell +function start_daemon { + echo "=> Starting httpd + php daemon ..." + exec /usr/sbin/apachectl -D FOREGROUND +} + + + +if [[ "$0" == *"run.sh" && ! $1 = "" ]];then + eval "$@"; +fi + +check_environment +check_httpd_environment +display_container_header +begin_config +end_config +start_daemon +display_container_started -- cgit v1.2.3