diff options
| -rw-r--r-- | OS/run.sh | 3 | ||||
| -rw-r--r-- | OS/sx-lib.sh | 1 | ||||
| -rw-r--r-- | Services/apache/Dockerfile | 25 | ||||
| -rw-r--r-- | Services/apache/docker-compose.yml | 15 | ||||
| -rw-r--r-- | Services/apache/httpd.conf | 10 | ||||
| -rw-r--r-- | Services/apache/run.sh | 15 | ||||
| -rw-r--r-- | Services/apache/sx-httpd.sh | 34 | ||||
| -rw-r--r-- | Services/mariadb/Dockerfile | 30 | ||||
| -rw-r--r-- | Services/mariadb/README.md | 2 | ||||
| -rw-r--r-- | Services/mariadb/docker-compose.yml | 15 | ||||
| -rw-r--r-- | Services/mariadb/run.sh | 15 | ||||
| -rw-r--r-- | Services/mariadb/sx/mariadb.sh | 2 | ||||
| -rw-r--r-- | Services/php/Dockerfile | 16 | ||||
| -rw-r--r-- | Services/php/README.md | 2 | ||||
| -rw-r--r-- | Services/php/docker-compose.yml | 16 | ||||
| -rw-r--r-- | Services/php/httpd.conf | 10 | ||||
| -rw-r--r-- | Services/php/run.sh | 16 | 
17 files changed, 138 insertions, 89 deletions
| @@ -3,4 +3,5 @@ source /bin/sx-lib.sh  check_environment  display_container_header -display_container_started
\ No newline at end of file +display_container_started +tail -f /etc/redhat-release 
\ No newline at end of file diff --git a/OS/sx-lib.sh b/OS/sx-lib.sh index 362683f..7d6aac2 100644 --- a/OS/sx-lib.sh +++ b/OS/sx-lib.sh @@ -24,6 +24,7 @@ function check_environment {  function display_container_header {      echo "+====================================================="      echo "| Container   : $HOSTNAME" +    echo "| OS          : $(</etc/redhat-release)"      if [ -v CONTAINER_TYPE ]; then          echo "| Type        : $CONTAINER_TYPE"      fi diff --git a/Services/apache/Dockerfile b/Services/apache/Dockerfile index 72a8ee8..24dc063 100644 --- a/Services/apache/Dockerfile +++ b/Services/apache/Dockerfile @@ -4,20 +4,25 @@ MAINTAINER Christophe LARUE <dev@startx.fr>  USER root  RUN dnf -y install httpd && \      dnf clean all  -COPY httpd.conf /etc/httpd/conf.d/app.conf +ENV HTTPDCONF=/etc/httpd/conf.d/app.conf \ +    STARTUPLOG=/data/logs/httpd/startup.log \ +    LOG_PATH=/data/logs/httpd  \ +    APP_PATH=/data/httpd +COPY httpd.conf $HTTPDCONF  COPY *.sh /bin/  RUN chmod 775 /bin/run.sh /bin/sx-httpd.sh && \ -    chmod ug+r /etc/httpd/conf.d/app.conf && \ +    chmod ug+r $HTTPDCONF && \      rm -f /etc/httpd/conf.d/autoindex.conf && \      rm -f /etc/httpd/conf.d/welcome.conf && \      mkdir /data && \ -    mkdir /data/www && \ -    mkdir /data/logs -COPY ./ /data/www -RUN rm -f /data/www/Dockerfile /data/www/httpd.conf /data/www/run.sh /data/www/sx-httpd.sh && \ -    chown -R apache:apache /data/www /data/logs +    mkdir $APP_PATH && \ +    mkdir /data/logs && \ +    mkdir $LOG_PATH && \ +    touch $STARTUPLOG +COPY ./ $APP_PATH +RUN rm -f $APP_PATH/Dockerfile $APP_PATH/httpd.conf $APP_PATH/run.sh $APP_PATH/sx-httpd.sh && \ +    chown -R apache:apache $APP_PATH /data/logs -EXPOSE 80 -EXPOSE 443 -VOLUME ["/data/www","/data/logs"] +EXPOSE 80 443 +VOLUME [$APP_PATH,$LOG_PATH]  CMD ["/bin/run.sh"]
\ No newline at end of file diff --git a/Services/apache/docker-compose.yml b/Services/apache/docker-compose.yml index e0a016f..205a439 100644 --- a/Services/apache/docker-compose.yml +++ b/Services/apache/docker-compose.yml @@ -1,16 +1,17 @@ -apache: +httpd:    build: ./ -#  image: sx-apache -  container_name: "sx-apache" +#  image: sx-httpd +  container_name: "sx-httpd"    mem_limit: 1g    memswap_limit: 2g    cpu_shares: 2    restart: "on-failure:2"    environment:      CONTAINER_TYPE: "service" -    CONTAINER_SERVICE: "apache" -    CONTAINER_INSTANCE: "sx-apache" +    CONTAINER_SERVICE: "httpd" +    CONTAINER_INSTANCE: "sx-httpd"      SERVER_NAME: "localhost" +    DOC_ROOT: "/data/httpd"    volumes: -    - "/tmp/container/logs:/data/logs" -    - "/tmp/container/www:/data/www"
\ No newline at end of file +    - "/tmp/container/logs/httpd:/data/logs/httpd" +    - "/tmp/container/httpd:/data/httpd"
\ No newline at end of file diff --git a/Services/apache/httpd.conf b/Services/apache/httpd.conf index 8b04449..2f9d2fc 100644 --- a/Services/apache/httpd.conf +++ b/Services/apache/httpd.conf @@ -1,15 +1,17 @@  #  # This file will be copied into /etc/httpd/conf.d/app.conf and loaded when httpd start  # +DocumentRoot ${DOC_ROOT} +ServerName ${SERVER_NAME}  ServerAdmin cl@startx.fr -ErrorLog "/data/logs/httpd_error.log" +ErrorLog  ${LOG_PATH}/error.log  <IfModule log_config_module> -    CustomLog "/data/logs/httpd_access.log" combined +    CustomLog ${LOG_PATH}/access.log combined  </IfModule> -Alias / /data/www -<Directory "/data/www"> +Alias / ${APP_PATH} +<Directory ${APP_PATH}>      AddDefaultCharset UTF-8      AllowOverride All      Order Allow,Deny diff --git a/Services/apache/run.sh b/Services/apache/run.sh index a02537e..026c618 100644 --- a/Services/apache/run.sh +++ b/Services/apache/run.sh @@ -1,6 +1,4 @@  #!/bin/bash -export HTTPDCONF=/etc/httpd/conf.d/app.conf -  source /bin/sx-lib.sh  source /bin/sx-httpd.sh @@ -8,10 +6,9 @@ if [[ "$0" == *"run.sh" && ! $1 = "" ]];then      eval "$@";   fi -check_environment -check_httpd_environment -display_container_httpd_header -begin_config -end_config -display_container_started -start_daemon +check_environment | tee -a $STARTUPLOG +check_httpd_environment | tee -a $STARTUPLOG +display_container_httpd_header | tee -a $STARTUPLOG +begin_config | tee -a $STARTUPLOG +end_config | tee -a $STARTUPLOG +start_daemon | tee -a $STARTUPLOG diff --git a/Services/apache/sx-httpd.sh b/Services/apache/sx-httpd.sh index 6b2a417..363e74f 100644 --- a/Services/apache/sx-httpd.sh +++ b/Services/apache/sx-httpd.sh @@ -7,17 +7,24 @@ function check_httpd_environment {          echo "! WARNING : environment var SERVER_NAME is missing..."          echo "! WARNING : auto-assigned value : $SERVER_NAME"      fi -    if [ ! -v DOCROOT ]; then -        DOCROOT="/data/www" -        export DOCROOT -        echo "! WARNING : environment var DOCROOT is missing..." -        echo "! WARNING : auto-assigned value : $DOCROOT" +    if [ ! -v DOC_ROOT ]; then +        DOC_ROOT="/data/httpd" +        export DOC_ROOT +    fi +    if [ ! -v APP_PATH ]; then +        APP_PATH="/data/httpd" +        export APP_PATH +    fi +    if [ ! -v LOG_PATH ]; then +        LOG_PATH="/data/logs/httpd" +        export LOG_PATH      fi  }  function display_container_httpd_header {      echo "+====================================================="      echo "| Container   : $HOSTNAME" +    echo "| OS          : $(</etc/redhat-release)"      if [ -v CONTAINER_TYPE ]; then          echo "| Type        : $CONTAINER_TYPE"      fi @@ -30,6 +37,12 @@ function display_container_httpd_header {      if [ -v CONTAINER_SERVICE ]; then          echo "| ServerName  : $SERVER_NAME"      fi +    if [ -v APP_PATH ]; then +        echo "| App path    : $APP_PATH" +    fi +    if [ -v LOG_PATH ]; then +        echo "| Log path    : $LOG_PATH" +    fi      echo "+====================================================="  } @@ -37,20 +50,10 @@ function display_container_httpd_header {  # and start generating host keys  function begin_config {      echo "=> BEGIN APACHE CONFIGURATION" -    mkdir -p /var/run/httpd -    if [ -v DOCROOT ]; then -        echo "=> Set DocumentRoot to $DOCROOT in $HTTPDCONF" -        echo "DocumentRoot \"$DOCROOT\"" >> $HTTPDCONF -    fi -    if [ -v SERVER_NAME ]; then -        echo "=> Set ServerName to $SERVER_NAME in $HTTPDCONF" -        echo "ServerName \"$SERVER_NAME\"" >> $HTTPDCONF -    fi  }  # End configuration process just before starting daemon  function end_config { -    stop_server      echo "=> END APACHE CONFIGURATION"  } @@ -74,5 +77,6 @@ function stop_server {  # the running shell  function start_daemon {      echo "=> Starting httpd daemon ..." +    display_container_started      exec /usr/sbin/apachectl -D FOREGROUND  } diff --git a/Services/mariadb/Dockerfile b/Services/mariadb/Dockerfile index 5efa265..047cdda 100644 --- a/Services/mariadb/Dockerfile +++ b/Services/mariadb/Dockerfile @@ -1,25 +1,29 @@  FROM startx/fedora  MAINTAINER Christophe LARUE <dev@startx.fr> +USER root  RUN dnf -y install  mariadb-common mariadb-libs mariadb-config mariadb-errmsg mariadb-server mariadb \      && dnf clean all \ -    && mkdir -p /var/log/mysql \ -    && touch /var/log/mysql/.keep /var/lib/mysql/.keep \ -    && chown -R mysql:mysql /var/log/mysql /var/lib/mysql \ +    && mkdir -p /var/logs/mariadb \ +    && touch /var/logs/mariadb/.keep /var/lib/mariadb/.keep \ +    && chown -R mariadb:mariadb /var/logs/mariadb /var/lib/mariadb \      && mkdir -p /tmp/sql  -COPY sx/* /sx/ +ENV STARTUPLOG=/data/logs/mariadb/startup.log +COPY *.sh /bin/  COPY *.sql /tmp/sql/ +RUN chmod 775 /bin/run.sh && \ +    mkdir /data && \ +    mkdir /data/mariadb && \ +    mkdir /data/logs && \ +    mkdir /data/logs/mariadb && \ +    touch $STARTUPLOG +COPY ./ /data/www +RUN rm -f /data/www/Dockerfile /data/www/httpd.conf /data/www/run.sh /data/www/sx-httpd.sh && \ +    chown -R apache:apache /data/www /data/logs  RUN chmod ug+rx /sx/mariadb* /tmp/sql \      && chown -R mysql:mysql /sx/mariadb* /tmp/sql  EXPOSE 3306 -VOLUME ["/var/lib/mysql", "/var/log/mysql"] +VOLUME ["/data/mariadb", "/var/logs/mariadb"] -USER mysql -# if you wan't to set root password, otherwise auto-generated -# see docker logs <containerId> -ENV mysql_newadminpwd newRootPassword - - -#ENDPOINT ["/sx/mariadb_run.sh"] -CMD ["/sx/mariadb_run.sh"]
\ No newline at end of file +CMD ["/sx/run.sh"]
\ No newline at end of file diff --git a/Services/mariadb/README.md b/Services/mariadb/README.md index 0636335..b5f3d78 100644 --- a/Services/mariadb/README.md +++ b/Services/mariadb/README.md @@ -6,7 +6,7 @@ Container running mysqld daemon under a fedora server  	docker run -d -p 3306:3306 --name="mariadb" startx/sv-mariadb          # when used with a volume container (run data container, then run service) -	docker run -d -v /var/lib/mysql -v /var/log/mysql --name mariadb-data startx/sv-mariadb  echo "Data container for mariadb" +	docker run -d -v /var/lib/mysql -v /var/logs/mysql --name mariadb-data startx/sv-mariadb  echo "Data container for mariadb"  	docker run -d -p 3306:3306 --volumes-from mariadb-data --name="mariadb" startx/sv-mariadb  	# when used in a linked container  	docker run -d --name="mariadb" startx/sv-mariadb diff --git a/Services/mariadb/docker-compose.yml b/Services/mariadb/docker-compose.yml new file mode 100644 index 0000000..62ae6b8 --- /dev/null +++ b/Services/mariadb/docker-compose.yml @@ -0,0 +1,15 @@ +mariadb: +  build: ./ +#  image: sx-mariadb +  container_name: "sx-mariadb" +  mem_limit: 1g +  memswap_limit: 2g +  cpu_shares: 2 +  restart: "on-failure:2" +  environment: +    CONTAINER_TYPE: "service" +    CONTAINER_SERVICE: "mariadb" +    CONTAINER_INSTANCE: "sx-mariadb" +  volumes: +    - "/tmp/container/logs:/data/logs" +    - "/tmp/container/mariadb:/data/mariadb"
\ No newline at end of file diff --git a/Services/mariadb/run.sh b/Services/mariadb/run.sh new file mode 100644 index 0000000..a59a9af --- /dev/null +++ b/Services/mariadb/run.sh @@ -0,0 +1,15 @@ +#!/bin/bash +source /bin/sx-lib.sh +source /bin/sx-httpd.sh + +if [[ "$0" == *"run.sh" && ! $1 = "" ]];then +    eval "$@";  +fi + +check_environment | tee -a $STARTUPLOG +check_httpd_environment | tee -a $STARTUPLOG +display_container_httpd_header | tee -a $STARTUPLOG +begin_config | tee -a $STARTUPLOG +end_config | tee -a $STARTUPLOG +display_container_started | tee -a $STARTUPLOG +start_daemon | tee -a $STARTUPLOG diff --git a/Services/mariadb/sx/mariadb.sh b/Services/mariadb/sx/mariadb.sh index 5b2857d..7ff208e 100644 --- a/Services/mariadb/sx/mariadb.sh +++ b/Services/mariadb/sx/mariadb.sh @@ -1,7 +1,7 @@  #!/bin/bash  export TERM=dumb -export logfile="/var/log/mysql/mysqld.log" +export logfile="/var/logs/mysql/mysqld.log"  # Begin configuration before starting daemonized process  # redirect mysql.log to /dev/stderr diff --git a/Services/php/Dockerfile b/Services/php/Dockerfile index b46f098..8bb0304 100644 --- a/Services/php/Dockerfile +++ b/Services/php/Dockerfile @@ -8,17 +8,19 @@ 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 httpd.conf /etc/httpd/conf.d/app.conf +ENV LOG_PATH=/data/logs/httpd_php  \ +    APP_PATH=/data/httpd_php +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 /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 +    chmod ug+r $HTTPDCONF +COPY ./ $APP_PATH +RUN rm -f $APP_PATH/Dockerfile $APP_PATH/httpd.conf $APP_PATH/run.sh && \ +    chown -R apache:apache $APP_PATH $LOG_PATH && \ +    chmod ug+r -R $APP_PATH  EXPOSE 80  EXPOSE 443 -VOLUME ["/data/www","/data/logs"] +VOLUME [$APP_PATH,$LOG_PATH]  CMD ["/bin/run.sh"]
\ No newline at end of file diff --git a/Services/php/README.md b/Services/php/README.md index 2757a6a..370a3a8 100644 --- a/Services/php/README.md +++ b/Services/php/README.md @@ -6,7 +6,7 @@ Container running apache + php daemon under a fedora server  	docker run -d -p 80:80 --name="php" startx/sv-php          # when used with a volume container (run data container, then run service) -	docker run -d -v /var/www/html -v /var/log/httpd --name php-data startx/sv-php  echo "Data container for php webserver" +	docker run -d -v /var/www/html -v /var/logs/httpd --name php-data startx/sv-php  echo "Data container for php webserver"  	docker run -d -p 80:80 --volumes-from php-data --name="php" startx/sv-php  	when linked to another container  	docker run -d --name="mongo" startx/sv-mongo diff --git a/Services/php/docker-compose.yml b/Services/php/docker-compose.yml index b8130ef..2f410ce 100644 --- a/Services/php/docker-compose.yml +++ b/Services/php/docker-compose.yml @@ -1,15 +1,17 @@ -apache: +httpd_php:    build: ./ -#  image: sx-apache -  container_name: "sx-apache" +#  image: sx-httpd_php +  container_name: "sx-httpd_php"    mem_limit: 1g    memswap_limit: 2g    cpu_shares: 2    restart: "on-failure:2"    environment:      CONTAINER_TYPE: "service" -    CONTAINER_SERVICE: "apache" -    CONTAINER_INSTANCE: "sx-apache" +    CONTAINER_SERVICE: "httpd_php" +    CONTAINER_INSTANCE: "sx-httpd_php" +    SERVER_NAME: "localhost" +    DOC_ROOT: "/data/httpd_php"    volumes: -    - "/tmp/container/logs:/data/logs" -    - "/tmp/container/www:/data/www"
\ No newline at end of file +    - "/tmp/container/logs/httpd_php:/data/logs/httpd_php" +    - "/tmp/container/httpd_php:/data/httpd_php"
\ No newline at end of file diff --git a/Services/php/httpd.conf b/Services/php/httpd.conf index 3a51a63..1ce768f 100644 --- a/Services/php/httpd.conf +++ b/Services/php/httpd.conf @@ -1,15 +1,17 @@  #  # This file will be copied into /etc/httpd/conf.d/app.conf and loaded when httpd start  # +DocumentRoot ${DOC_ROOT} +ServerName ${SERVER_NAME}  ServerAdmin cl@startx.fr -ErrorLog "/data/logs/httpd_error.log" +ErrorLog  ${LOG_PATH}/error.log  <IfModule log_config_module> -    CustomLog "/data/logs/httpd_access.log" combined +    CustomLog ${LOG_PATH}/access.log combined  </IfModule> -Alias / /data/www -<Directory "/data/www"> +Alias / ${APP_PATH} +<Directory ${APP_PATH}>      AddDefaultCharset UTF-8      AllowOverride All      Order Allow,Deny diff --git a/Services/php/run.sh b/Services/php/run.sh index a02537e..a59a9af 100644 --- a/Services/php/run.sh +++ b/Services/php/run.sh @@ -1,6 +1,4 @@  #!/bin/bash -export HTTPDCONF=/etc/httpd/conf.d/app.conf -  source /bin/sx-lib.sh  source /bin/sx-httpd.sh @@ -8,10 +6,10 @@ if [[ "$0" == *"run.sh" && ! $1 = "" ]];then      eval "$@";   fi -check_environment -check_httpd_environment -display_container_httpd_header -begin_config -end_config -display_container_started -start_daemon +check_environment | tee -a $STARTUPLOG +check_httpd_environment | tee -a $STARTUPLOG +display_container_httpd_header | tee -a $STARTUPLOG +begin_config | tee -a $STARTUPLOG +end_config | tee -a $STARTUPLOG +display_container_started | tee -a $STARTUPLOG +start_daemon | tee -a $STARTUPLOG | 
