├── LICENSE ├── README.md ├── maven-app └── 3.3-jdk-7 │ ├── Dockerfile │ ├── app │ ├── init │ └── mvn │ ├── supervisor │ └── supervisord.conf │ └── system │ ├── init │ ├── locale.sh │ └── timezone.sh ├── mysql ├── 5.6 │ ├── Dockerfile │ └── system │ │ ├── init │ │ ├── locale.sh │ │ └── timezone.sh └── 5.7 │ ├── Dockerfile │ └── system │ ├── init │ ├── locale.sh │ └── timezone.sh ├── node-browser-app ├── Dockerfile ├── supervisor │ └── supervisord.conf └── system │ ├── init │ ├── locale.sh │ └── timezone.sh ├── php-app ├── php53 │ ├── Dockerfile │ ├── apache2 │ │ ├── apache2 │ │ └── app.conf │ ├── app │ │ ├── composer │ │ └── init │ ├── php5 │ │ ├── app.ini │ │ └── timezone.sh │ ├── supervisor │ │ └── supervisord.conf │ └── system │ │ ├── init │ │ ├── locale.sh │ │ └── timezone.sh ├── php55 │ ├── Dockerfile │ ├── apache2 │ │ ├── apache2 │ │ └── app.conf │ ├── app │ │ ├── composer │ │ └── init │ ├── php5 │ │ ├── app.ini │ │ └── timezone.sh │ ├── supervisor │ │ └── supervisord.conf │ └── system │ │ ├── init │ │ ├── locale.sh │ │ └── timezone.sh ├── php56 │ ├── Dockerfile │ ├── apache2 │ │ ├── apache2 │ │ └── app.conf │ ├── app │ │ ├── composer │ │ └── init │ ├── php5 │ │ ├── app.ini │ │ └── timezone.sh │ ├── supervisor │ │ └── supervisord.conf │ └── system │ │ ├── init │ │ ├── locale.sh │ │ └── timezone.sh ├── php70 │ ├── Dockerfile │ ├── apache2 │ │ ├── apache2 │ │ └── app.conf │ ├── app │ │ ├── composer │ │ └── init │ ├── php7 │ │ ├── app.ini │ │ └── timezone.sh │ ├── supervisor │ │ └── supervisord.conf │ └── system │ │ ├── init │ │ ├── locale.sh │ │ └── timezone.sh ├── php71 │ ├── Dockerfile │ ├── apache2 │ │ ├── apache2 │ │ └── app.conf │ ├── app │ │ ├── composer │ │ └── init │ ├── php7 │ │ ├── app.ini │ │ └── timezone.sh │ ├── supervisor │ │ └── supervisord.conf │ └── system │ │ ├── init │ │ ├── locale.sh │ │ └── timezone.sh └── php72 │ ├── Dockerfile │ ├── apache2 │ ├── apache2 │ └── app.conf │ ├── app │ ├── composer │ └── init │ ├── php7 │ ├── app.ini │ └── timezone.sh │ ├── supervisor │ └── supervisord.conf │ └── system │ ├── init │ ├── locale.sh │ └── timezone.sh ├── sphinx-app └── 1.4 │ ├── Dockerfile │ ├── app │ └── init │ ├── supervisor │ └── supervisord.conf │ └── system │ ├── init │ ├── locale.sh │ └── timezone.sh ├── symfony-app ├── php53 │ ├── Dockerfile │ ├── apache2 │ │ └── passenv.patch │ └── app │ │ ├── console │ │ ├── init │ │ └── make-app-accessible ├── php55 │ ├── Dockerfile │ ├── apache2 │ │ └── passenv.patch │ └── app │ │ ├── console │ │ ├── init │ │ └── make-app-accessible ├── php56 │ ├── Dockerfile │ ├── apache2 │ │ └── passenv.patch │ └── app │ │ ├── console │ │ ├── init │ │ └── make-app-accessible ├── php70 │ ├── Dockerfile │ ├── apache2 │ │ └── passenv.patch │ └── app │ │ ├── console │ │ ├── init │ │ └── make-app-accessible ├── php71 │ ├── Dockerfile │ ├── apache2 │ │ └── passenv.patch │ └── app │ │ ├── console │ │ ├── init │ │ └── make-app-accessible └── php72 │ ├── Dockerfile │ ├── apache2 │ └── passenv.patch │ └── app │ ├── console │ ├── init │ └── make-app-accessible └── tomcat-app ├── 7.0-jre8 ├── Dockerfile ├── app │ ├── init │ ├── mvn │ └── tomcat-jpda ├── supervisor │ └── supervisord.conf └── system │ ├── init │ ├── locale.sh │ └── timezone.sh └── 7.0 ├── Dockerfile ├── app ├── init ├── mvn └── tomcat-jpda ├── supervisor └── supervisord.conf └── system ├── init ├── locale.sh └── timezone.sh /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-2017 KUBO Atsuhiro , 4 | All rights reserved. 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PHP Mentors Docker Images 2 | 3 | ## Repositories 4 | 5 | * [phpmentors/maven-app](https://hub.docker.com/r/phpmentors/maven-app/) based on [java](https://hub.docker.com/_/java/) 6 | * [phpmentors/mysql](https://registry.hub.docker.com/u/phpmentors/mysql/) based on [mysql](https://registry.hub.docker.com/_/mysql/) 7 | * [phpmentors/node-browser-app](https://registry.hub.docker.com/u/phpmentors/node-browser-app/) based on [node](https://registry.hub.docker.com/_/node/) 8 | * [phpmentors/php-app](https://registry.hub.docker.com/u/phpmentors/php-app/) based on [ubuntu](https://registry.hub.docker.com/_/ubuntu/) 9 | * [phpmentors/sphinx-app](https://hub.docker.com/r/phpmentors/sphinx-app/) based on [nginx](https://hub.docker.com/_/nginx/) 10 | * [phpmentors/symfony-app](https://registry.hub.docker.com/u/phpmentors/symfony-app/) based on [phpmentors/php-app](https://registry.hub.docker.com/u/phpmentors/php-app/) 11 | * [phpmentors/tomcat-app](https://registry.hub.docker.com/u/phpmentors/tomcat-app/) based on [tomcat](https://registry.hub.docker.com/_/tomcat/) 12 | 13 | ## Support 14 | 15 | If you find a bug or have a question, or want to request a feature, create an issue or pull request for it on [Issues](https://github.com/phpmentors-jp/docker-images/issues). 16 | 17 | ## Copyright 18 | 19 | Copyright (c) 2014-2018 Atsuhiro Kubo, All rights reserved. 20 | 21 | ## License 22 | 23 | [The MIT License](http://opensource.org/licenses/MIT) 24 | -------------------------------------------------------------------------------- /maven-app/3.3-jdk-7/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # maven-app 3 | # 4 | 5 | FROM java:openjdk-7-jdk 6 | MAINTAINER KUBO Atsuhiro 7 | 8 | RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections 9 | RUN apt-get update 10 | RUN apt-get -y upgrade 11 | RUN apt-get install -y locales 12 | RUN apt-get install -y apt-utils 13 | RUN apt-get install -y supervisor 14 | RUN apt-get install -y git 15 | RUN apt-get install -y less vim-tiny 16 | RUN apt-get install -y sudo 17 | 18 | # Supervisor 19 | RUN mkdir -p /var/log/supervisor 20 | ADD supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf 21 | 22 | # Maven 23 | ENV MAVEN_VERSION 3.3.9 24 | ENV MAVEN_HOME /usr/share/maven 25 | RUN curl -fsSLk https://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz | tar xzf - -C /usr/share && mv /usr/share/apache-maven-$MAVEN_VERSION $MAVEN_HOME 26 | 27 | # Maven application 28 | ADD app/init /usr/local/sbin/app-init 29 | RUN chmod 755 /usr/local/sbin/app-init 30 | ADD app/mvn /usr/local/bin/mvn 31 | RUN chmod 755 /usr/local/bin/mvn 32 | 33 | # System 34 | RUN dpkg-reconfigure -f noninteractive locales 35 | ADD system/init /usr/local/sbin/system-init 36 | RUN chmod 755 /usr/local/sbin/system-init 37 | ADD system/locale.sh /usr/local/sbin/system-locale.sh 38 | ADD system/timezone.sh /usr/local/sbin/system-timezone.sh 39 | 40 | # Others 41 | RUN mkdir /var/app 42 | RUN echo "This file is a placeholder to expose /var/app directory after creating a new container from Kitematic." > /var/app/.placeholder 43 | VOLUME ["/var/app"] 44 | 45 | # Command 46 | CMD ["/usr/local/sbin/system-init"] 47 | -------------------------------------------------------------------------------- /maven-app/3.3-jdk-7/app/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | application_dir="/var/app" 6 | 7 | if [ ! -d "$application_dir" ]; then 8 | echo "ERROR: \"$application_dir\" does not exist. Mount your Maven project root as \"$application_dir\" on the host." 9 | 10 | exit 1 11 | fi 12 | 13 | find "${application_dir}" -type d ! -perm 2775 -exec chmod 2775 '{}' \; 14 | RETVAL=$? 15 | if [ $RETVAL -ne 0 ]; then 16 | exit $RETVAL 17 | fi 18 | 19 | find "${application_dir}" -type f ! -perm -g+rw -exec chmod g+rw '{}' \; 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | exit $RETVAL 23 | fi 24 | 25 | if [ ! -d "${application_dir}/.m2" ]; then 26 | mkdir "${application_dir}/.m2" 27 | RETVAL=$? 28 | if [ $RETVAL -ne 0 ]; then 29 | exit $RETVAL 30 | fi 31 | fi 32 | 33 | ln -sf "${application_dir}/.m2" /root 34 | RETVAL=$? 35 | if [ $RETVAL -ne 0 ]; then 36 | exit $RETVAL 37 | fi 38 | 39 | if [ "x$APP_INIT_SCRIPT" != "x" ]; then 40 | echo "$APP_INIT_SCRIPT" | grep "^\/" 41 | RETVAL=$? 42 | if [ $RETVAL -ne 0 ]; then 43 | APP_INIT_SCRIPT="${application_dir}/${APP_INIT_SCRIPT}" 44 | fi 45 | 46 | if [ -x "$APP_INIT_SCRIPT" ]; then 47 | "$APP_INIT_SCRIPT" 48 | RETVAL=$? 49 | if [ $RETVAL -ne 0 ]; then 50 | exit $RETVAL 51 | fi 52 | fi 53 | fi 54 | -------------------------------------------------------------------------------- /maven-app/3.3-jdk-7/app/mvn: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | umask 0002 3 | JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64" 4 | MAVEN_HOME="/usr/share/maven" 5 | application_dir="/var/app" 6 | 7 | cd $application_dir 8 | "${MAVEN_HOME}/bin/mvn" "$@" 9 | -------------------------------------------------------------------------------- /maven-app/3.3-jdk-7/supervisor/supervisord.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | 4 | [program:app-init] 5 | command=/usr/local/sbin/app-init 6 | autorestart=false 7 | startsecs=0 8 | startretries=0 9 | -------------------------------------------------------------------------------- /maven-app/3.3-jdk-7/system/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | typeset script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | . "$script_dir/system-locale.sh" 6 | . "$script_dir/system-timezone.sh" 7 | 8 | if [ "x$LANG" != "x" ]; then 9 | _system_locale_configure "$LANG" 10 | fi 11 | 12 | if [ "x$TZ" != "x" ]; then 13 | _system_timezone_configure "$TZ" 14 | fi 15 | 16 | /usr/bin/supervisord -c /etc/supervisor/supervisord.conf 17 | -------------------------------------------------------------------------------- /maven-app/3.3-jdk-7/system/locale.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_locale_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_locale_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local lang="$1" 11 | 12 | grep "$lang" /etc/locale.gen 13 | RETVAL=$? 14 | if [ $RETVAL -ne 0 ]; then 15 | echo "ERROR: \"$lang\" does not exist." 16 | 17 | return $RETVAL 18 | fi 19 | 20 | sed -i "s/# *\($lang\)/\\1/" /etc/locale.gen 21 | RETVAL=$? 22 | if [ $RETVAL -ne 0 ]; then 23 | return $RETVAL 24 | fi 25 | 26 | locale-gen 27 | RETVAL=$? 28 | if [ $RETVAL -ne 0 ]; then 29 | return $RETVAL 30 | fi 31 | 32 | update-locale LANG="$lang" 33 | RETVAL=$? 34 | if [ $RETVAL -ne 0 ]; then 35 | return $RETVAL 36 | fi 37 | 38 | export LANG="$lang" 39 | export LANGUAGE="$lang" 40 | 41 | return 0 42 | } 43 | -------------------------------------------------------------------------------- /maven-app/3.3-jdk-7/system/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "$timezone" > /etc/timezone 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | dpkg-reconfigure -f noninteractive tzdata 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | -------------------------------------------------------------------------------- /mysql/5.6/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # mysql 3 | # 4 | 5 | FROM mysql:5.6 6 | MAINTAINER KUBO Atsuhiro 7 | 8 | RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections 9 | RUN apt-get update 10 | RUN apt-get -y upgrade 11 | RUN apt-get install -y locales 12 | RUN apt-get install -y apt-utils 13 | 14 | # System 15 | RUN dpkg-reconfigure -f noninteractive locales 16 | ADD system/init /usr/local/sbin/system-init 17 | RUN chmod 755 /usr/local/sbin/system-init 18 | ADD system/locale.sh /usr/local/sbin/system-locale.sh 19 | ADD system/timezone.sh /usr/local/sbin/system-timezone.sh 20 | 21 | # Others 22 | RUN echo "This file is a placeholder to expose /var/app directory after creating a new container from Kitematic." > /etc/mysql/conf.d/.placeholder 23 | VOLUME /etc/mysql/conf.d 24 | -------------------------------------------------------------------------------- /mysql/5.6/system/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | . /usr/local/sbin/system-locale.sh 4 | . /usr/local/sbin/system-timezone.sh 5 | 6 | if [ "x$LANG" != "x" ]; then 7 | _system_locale_configure "$LANG" 8 | fi 9 | 10 | if [ "x$TZ" != "x" ]; then 11 | _system_timezone_configure "$TZ" 12 | fi 13 | 14 | /usr/local/sbin/mysql-init 15 | -------------------------------------------------------------------------------- /mysql/5.6/system/locale.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_locale_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_locale_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local lang="$1" 11 | 12 | grep "$lang" /etc/locale.gen 13 | RETVAL=$? 14 | if [ $RETVAL -ne 0 ]; then 15 | echo "ERROR: \"$lang\" does not exist." 16 | 17 | return $RETVAL 18 | fi 19 | 20 | sed -i "s/# *\($lang\)/\\1/" /etc/locale.gen 21 | RETVAL=$? 22 | if [ $RETVAL -ne 0 ]; then 23 | return $RETVAL 24 | fi 25 | 26 | locale-gen 27 | RETVAL=$? 28 | if [ $RETVAL -ne 0 ]; then 29 | return $RETVAL 30 | fi 31 | 32 | update-locale LANG="$lang" 33 | RETVAL=$? 34 | if [ $RETVAL -ne 0 ]; then 35 | return $RETVAL 36 | fi 37 | 38 | export LANG="$lang" 39 | export LANGUAGE="$lang" 40 | 41 | return 0 42 | } 43 | -------------------------------------------------------------------------------- /mysql/5.6/system/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "$timezone" > /etc/timezone 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | dpkg-reconfigure -f noninteractive tzdata 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | -------------------------------------------------------------------------------- /mysql/5.7/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # mysql 3 | # 4 | 5 | FROM mysql:5.7 6 | MAINTAINER Atsuhiro Kubo 7 | 8 | RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections 9 | RUN apt-get update 10 | RUN apt-get -y upgrade 11 | RUN apt-get install -y locales 12 | RUN apt-get install -y apt-utils 13 | 14 | # System 15 | RUN dpkg-reconfigure -f noninteractive locales 16 | ADD system/init /usr/local/sbin/system-init 17 | RUN chmod 755 /usr/local/sbin/system-init 18 | ADD system/locale.sh /usr/local/sbin/system-locale.sh 19 | ADD system/timezone.sh /usr/local/sbin/system-timezone.sh 20 | 21 | # Others 22 | RUN echo "This file is a placeholder to expose /var/app directory after creating a new container from Kitematic." > /etc/mysql/conf.d/.placeholder 23 | VOLUME /etc/mysql/conf.d 24 | -------------------------------------------------------------------------------- /mysql/5.7/system/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | . /usr/local/sbin/system-locale.sh 4 | . /usr/local/sbin/system-timezone.sh 5 | 6 | if [ "x$LANG" != "x" ]; then 7 | _system_locale_configure "$LANG" 8 | fi 9 | 10 | if [ "x$TZ" != "x" ]; then 11 | _system_timezone_configure "$TZ" 12 | fi 13 | 14 | /usr/local/sbin/mysql-init 15 | -------------------------------------------------------------------------------- /mysql/5.7/system/locale.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_locale_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_locale_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local lang="$1" 11 | 12 | grep "$lang" /etc/locale.gen 13 | RETVAL=$? 14 | if [ $RETVAL -ne 0 ]; then 15 | echo "ERROR: \"$lang\" does not exist." 16 | 17 | return $RETVAL 18 | fi 19 | 20 | sed -i "s/# *\($lang\)/\\1/" /etc/locale.gen 21 | RETVAL=$? 22 | if [ $RETVAL -ne 0 ]; then 23 | return $RETVAL 24 | fi 25 | 26 | locale-gen 27 | RETVAL=$? 28 | if [ $RETVAL -ne 0 ]; then 29 | return $RETVAL 30 | fi 31 | 32 | update-locale LANG="$lang" 33 | RETVAL=$? 34 | if [ $RETVAL -ne 0 ]; then 35 | return $RETVAL 36 | fi 37 | 38 | export LANG="$lang" 39 | export LANGUAGE="$lang" 40 | 41 | return 0 42 | } 43 | -------------------------------------------------------------------------------- /mysql/5.7/system/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "$timezone" > /etc/timezone 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | dpkg-reconfigure -f noninteractive tzdata 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | -------------------------------------------------------------------------------- /node-browser-app/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # node-browser-app 3 | # 4 | 5 | FROM node:5.4.1 6 | MAINTAINER KUBO Atsuhiro 7 | 8 | RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections 9 | RUN apt-get update 10 | RUN apt-get -y upgrade 11 | RUN apt-get install -y locales 12 | RUN apt-get install -y apt-utils 13 | RUN apt-get install -y supervisor 14 | RUN apt-get install -y git 15 | RUN apt-get install -y less vim-tiny 16 | RUN apt-get install -y sudo 17 | 18 | # Supervisor 19 | RUN mkdir -p /var/log/supervisor 20 | ADD supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf 21 | 22 | # System 23 | RUN dpkg-reconfigure -f noninteractive locales 24 | ADD system/init /usr/local/sbin/system-init 25 | RUN chmod 755 /usr/local/sbin/system-init 26 | ADD system/locale.sh /usr/local/sbin/system-locale.sh 27 | ADD system/timezone.sh /usr/local/sbin/system-timezone.sh 28 | 29 | # Others 30 | RUN mkdir /var/app 31 | RUN echo "This file is a placeholder to expose /var/app directory after creating a new container from Kitematic." > /var/app/.placeholder 32 | RUN mkdir /var/deploy 33 | RUN echo "This file is a placeholder to expose /var/app directory after creating a new container from Kitematic." > /var/deploy/.placeholder 34 | VOLUME ["/var/app", "/var/deploy"] 35 | 36 | # Command 37 | CMD ["/usr/local/sbin/system-init"] 38 | -------------------------------------------------------------------------------- /node-browser-app/supervisor/supervisord.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | -------------------------------------------------------------------------------- /node-browser-app/system/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | typeset script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | . "$script_dir/system-locale.sh" 6 | . "$script_dir/system-timezone.sh" 7 | 8 | if [ "x$LANG" != "x" ]; then 9 | _system_locale_configure "$LANG" 10 | fi 11 | 12 | if [ "x$TZ" != "x" ]; then 13 | _system_timezone_configure "$TZ" 14 | fi 15 | 16 | /usr/bin/supervisord -c /etc/supervisor/supervisord.conf 17 | -------------------------------------------------------------------------------- /node-browser-app/system/locale.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_locale_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_locale_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local lang="$1" 11 | 12 | grep "$lang" /etc/locale.gen 13 | RETVAL=$? 14 | if [ $RETVAL -ne 0 ]; then 15 | echo "ERROR: \"$lang\" does not exist." 16 | 17 | return $RETVAL 18 | fi 19 | 20 | sed -i "s/# *\($lang\)/\\1/" /etc/locale.gen 21 | RETVAL=$? 22 | if [ $RETVAL -ne 0 ]; then 23 | return $RETVAL 24 | fi 25 | 26 | locale-gen 27 | RETVAL=$? 28 | if [ $RETVAL -ne 0 ]; then 29 | return $RETVAL 30 | fi 31 | 32 | update-locale LANG="$lang" 33 | RETVAL=$? 34 | if [ $RETVAL -ne 0 ]; then 35 | return $RETVAL 36 | fi 37 | 38 | export LANG="$lang" 39 | export LANGUAGE="$lang" 40 | 41 | return 0 42 | } 43 | -------------------------------------------------------------------------------- /node-browser-app/system/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "$timezone" > /etc/timezone 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | dpkg-reconfigure -f noninteractive tzdata 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | -------------------------------------------------------------------------------- /php-app/php53/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # php-app 3 | # 4 | 5 | FROM ubuntu:12.04 6 | MAINTAINER KUBO Atsuhiro 7 | 8 | RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections 9 | RUN apt-get update 10 | RUN apt-get -y upgrade 11 | RUN apt-get install -y apt-utils 12 | RUN apt-get install -y supervisor 13 | RUN apt-get install -y apache2-mpm-prefork 14 | RUN apt-get install -y mysql-client-core-5.5 15 | RUN apt-get install -y php5 php5-curl php5-intl php5-mysql php5-xdebug php-apc php5-dev 16 | RUN apt-get install -y git 17 | RUN apt-get install -y less vim-tiny 18 | RUN apt-get install -y apg 19 | RUN apt-get install -y sudo 20 | 21 | # Supervisor 22 | RUN mkdir -p /var/log/supervisor 23 | ADD supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf 24 | 25 | # Apache2 26 | ENV APACHE_RUN_USER www-data 27 | ENV APACHE_RUN_GROUP www-data 28 | ENV APACHE_LOG_DIR /var/log/apache2 29 | ENV APP_DOCUMENT_ROOT /var/www 30 | EXPOSE 80 31 | ADD apache2/app.conf /etc/apache2/sites-available/default 32 | ADD apache2/apache2 /usr/local/sbin/apache2 33 | RUN chmod 755 /usr/local/sbin/apache2 34 | RUN a2enmod rewrite 35 | RUN sed -i "s/^\\( *export \+LANG.*\\)/#\\1/" /etc/apache2/envvars 36 | 37 | # PHP5 38 | ENV PHP_INI "" 39 | ENV XDEBUG_REMOTE_PORT "" 40 | ADD php5/app.ini /etc/php5/conf.d/90-app.ini 41 | ADD php5/timezone.sh /usr/local/sbin/php5-timezone.sh 42 | 43 | # PHP application 44 | ADD app/init /usr/local/sbin/app-init 45 | RUN chmod 755 /usr/local/sbin/app-init 46 | ADD app/composer /usr/local/bin/composer 47 | RUN chmod 755 /usr/local/bin/composer 48 | RUN chown root.root /usr/local/bin/composer 49 | 50 | # System 51 | ENV TZ "" 52 | ENV LANG "" 53 | ADD system/init /usr/local/sbin/system-init 54 | RUN chmod 755 /usr/local/sbin/system-init 55 | ADD system/locale.sh /usr/local/sbin/system-locale.sh 56 | ADD system/timezone.sh /usr/local/sbin/system-timezone.sh 57 | 58 | # Others 59 | ENV HOME /root 60 | WORKDIR /root 61 | RUN mkdir /var/app 62 | RUN echo "This file is a placeholder to expose /var/app directory after creating a new container from Kitematic." > /var/app/.placeholder 63 | VOLUME /var/app 64 | 65 | # Command 66 | CMD ["/usr/local/sbin/system-init"] 67 | -------------------------------------------------------------------------------- /php-app/php53/apache2/apache2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ "x$PHP_INI" != "x" ]; then 4 | echo "$PHP_INI" | grep "^\/" 5 | RETVAL=$? 6 | if [ $RETVAL -ne 0 ]; then 7 | PHP_INI="/var/app/${PHP_INI}" 8 | fi 9 | 10 | if [ -e "$PHP_INI" ]; then 11 | ln -sf "$PHP_INI" /etc/php5/conf.d/99-app.ini 12 | fi 13 | fi 14 | 15 | if [ "x$XDEBUG_REMOTE_PORT" != "x" ]; then 16 | sed -i "s/^ *\\(xdebug\\.remote_port\\) *= *.*/\\1=${XDEBUG_REMOTE_PORT}/" /etc/php5/conf.d/90-app.ini 17 | fi 18 | 19 | source /etc/apache2/envvars && exec /usr/sbin/apache2 -D FOREGROUND 20 | -------------------------------------------------------------------------------- /php-app/php53/apache2/app.conf: -------------------------------------------------------------------------------- 1 | 2 | DocumentRoot "${APP_DOCUMENT_ROOT}" 3 | 4 | 5 | AllowOverride AuthConfig FileInfo Indexes Limit Options=All,MultiViews 6 | Options FollowSymLinks MultiViews 7 | Order allow,deny 8 | Allow from all 9 | 10 | 11 | CustomLog ${APACHE_LOG_DIR}/access.log combined 12 | ErrorLog ${APACHE_LOG_DIR}/error.log 13 | 14 | -------------------------------------------------------------------------------- /php-app/php53/app/composer: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | APACHE_RUN_USER=www-data 3 | application_dir="/var/app" 4 | 5 | cd $application_dir 6 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 "${application_dir}/composer.phar" "$@" 7 | -------------------------------------------------------------------------------- /php-app/php53/app/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | application_dir="/var/app" 6 | 7 | if [ "x$APACHE_RUN_USER" = "x" ]; then 8 | echo "ERROR: The environment variable \"APACHE_RUN_USER\" does not exist." 9 | 10 | exit 1 11 | fi 12 | 13 | if [ ! -d "$application_dir" ]; then 14 | echo "ERROR: \"$application_dir\" does not exist. Mount your PHP project root as \"$application_dir\" on the host." 15 | 16 | exit 1 17 | fi 18 | 19 | cd "$application_dir" 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | exit $RETVAL 23 | fi 24 | 25 | find "${application_dir}" ! -group $APACHE_RUN_GROUP -exec chgrp $APACHE_RUN_GROUP '{}' \; 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | exit $RETVAL 29 | fi 30 | 31 | find "${application_dir}" -type d ! -perm 2775 -exec chmod 2775 '{}' \; 32 | RETVAL=$? 33 | if [ $RETVAL -ne 0 ]; then 34 | exit $RETVAL 35 | fi 36 | 37 | find "${application_dir}" -type f ! -perm -g+rw -exec chmod g+rw '{}' \; 38 | RETVAL=$? 39 | if [ $RETVAL -ne 0 ]; then 40 | exit $RETVAL 41 | fi 42 | 43 | if [ ! -e "${application_dir}/composer.phar" ]; then 44 | sudo -u $APACHE_RUN_USER php -r "readfile('https://getcomposer.org/installer');" | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php 45 | RETVAL=$? 46 | if [ $RETVAL -ne 0 ]; then 47 | exit $RETVAL 48 | fi 49 | fi 50 | 51 | if [ -e "${application_dir}/composer.phar" ]; then 52 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php composer.phar self-update 53 | RETVAL=$? 54 | if [ $RETVAL -ne 0 ]; then 55 | exit $RETVAL 56 | fi 57 | 58 | if [ "x$APP_CREATE_PROJECT" = "x" ]; then 59 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php composer.phar install --no-interaction 60 | RETVAL=$? 61 | if [ $RETVAL -ne 0 ]; then 62 | exit $RETVAL 63 | fi 64 | else 65 | if [ "x$APP_CREATE_PROJECT_VERSION" = "x" ]; then 66 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 composer.phar create-project --no-interaction "$APP_CREATE_PROJECT" /tmp/app 67 | else 68 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 composer.phar create-project --no-interaction "$APP_CREATE_PROJECT" /tmp/app "$APP_CREATE_PROJECT_VERSION" 69 | fi 70 | RETVAL=$? 71 | if [ $RETVAL -ne 0 ]; then 72 | exit $RETVAL 73 | fi 74 | 75 | $( shopt -s dotglob nullglob && mv /tmp/app/* "${application_dir}" ) 76 | RETVAL=$? 77 | if [ $RETVAL -ne 0 ]; then 78 | exit $RETVAL 79 | fi 80 | 81 | rm -rf /tmp/app 82 | fi 83 | fi 84 | 85 | find "${application_dir}" ! -group $APACHE_RUN_GROUP -exec chgrp $APACHE_RUN_GROUP '{}' \; 86 | RETVAL=$? 87 | if [ $RETVAL -ne 0 ]; then 88 | exit $RETVAL 89 | fi 90 | 91 | find "${application_dir}" -type d ! -perm 2775 -exec chmod 2775 '{}' \; 92 | RETVAL=$? 93 | if [ $RETVAL -ne 0 ]; then 94 | exit $RETVAL 95 | fi 96 | 97 | find "${application_dir}" -type f ! -perm -g+rw -exec chmod g+rw '{}' \; 98 | RETVAL=$? 99 | if [ $RETVAL -ne 0 ]; then 100 | exit $RETVAL 101 | fi 102 | 103 | if [ "x$APP_INIT_SCRIPT" != "x" ]; then 104 | echo "$APP_INIT_SCRIPT" | grep "^\/" 105 | RETVAL=$? 106 | if [ $RETVAL -ne 0 ]; then 107 | APP_INIT_SCRIPT="${application_dir}/${APP_INIT_SCRIPT}" 108 | fi 109 | 110 | if [ -x "$APP_INIT_SCRIPT" ]; then 111 | "$APP_INIT_SCRIPT" 112 | RETVAL=$? 113 | if [ $RETVAL -ne 0 ]; then 114 | exit $RETVAL 115 | fi 116 | fi 117 | fi 118 | -------------------------------------------------------------------------------- /php-app/php53/php5/app.ini: -------------------------------------------------------------------------------- 1 | xdebug.max_nesting_level=200 2 | xdebug.overload_var_dump=Off 3 | xdebug.remote_autostart=Off 4 | xdebug.remote_connect_back=On 5 | xdebug.remote_enable=On 6 | xdebug.remote_port=9000 7 | session.cookie_secure=Off 8 | session.use_cookies=On 9 | session.use_only_cookies=On 10 | short_open_tag=Off 11 | -------------------------------------------------------------------------------- /php-app/php53/php5/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _php_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _php_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "date.timezone=$timezone" >> /etc/php5/conf.d/90-app.ini 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | return 0 26 | } 27 | -------------------------------------------------------------------------------- /php-app/php53/supervisor/supervisord.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | 4 | [program:apache2] 5 | command=/usr/local/sbin/apache2 6 | 7 | [program:app-init] 8 | command=/usr/local/sbin/app-init 9 | autorestart=false 10 | startsecs=0 11 | startretries=0 12 | -------------------------------------------------------------------------------- /php-app/php53/system/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | typeset script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | . "$script_dir/php5-timezone.sh" 6 | . "$script_dir/system-locale.sh" 7 | . "$script_dir/system-timezone.sh" 8 | 9 | apt-get update 10 | 11 | if [ "x$LANG" != "x" ]; then 12 | _system_locale_configure "$LANG" 13 | fi 14 | 15 | if [ "x$TZ" != "x" ]; then 16 | _system_timezone_configure "$TZ" 17 | RETVAL=$? 18 | if [ $RETVAL -eq 0 ]; then 19 | _php_timezone_configure "$TZ" 20 | fi 21 | fi 22 | 23 | /usr/bin/supervisord -c /etc/supervisor/supervisord.conf 24 | -------------------------------------------------------------------------------- /php-app/php53/system/locale.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_locale_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_locale_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local lang="$1" 11 | local lang_package_suffix=`echo $lang | grep -o '^[a-z]\+'` 12 | 13 | apt-get install -y "language-pack-${lang_package_suffix}" 14 | RETVAL=$? 15 | if [ $RETVAL -ne 0 ]; then 16 | return $RETVAL 17 | fi 18 | 19 | update-locale LANG="$lang" 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | export LANG="$lang" 26 | export LANGUAGE="$lang" 27 | 28 | return 0 29 | } 30 | -------------------------------------------------------------------------------- /php-app/php53/system/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "$timezone" > /etc/timezone 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | dpkg-reconfigure -f noninteractive tzdata 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | -------------------------------------------------------------------------------- /php-app/php55/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # php-app 3 | # 4 | 5 | FROM ubuntu:14.04 6 | MAINTAINER KUBO Atsuhiro 7 | 8 | RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections 9 | RUN apt-get update 10 | RUN apt-get -y upgrade 11 | RUN apt-get install -y apt-utils 12 | RUN apt-get install -y supervisor 13 | RUN apt-get install -y apache2-mpm-prefork 14 | RUN apt-get install -y mysql-client-core-5.6 15 | RUN apt-get install -y php5 php5-curl php5-intl php5-mysql php5-xdebug php5-apcu php5-dev 16 | RUN apt-get install -y git 17 | RUN apt-get install -y less vim-tiny 18 | RUN apt-get install -y apg 19 | RUN apt-get install -y sudo 20 | 21 | # Supervisor 22 | RUN mkdir -p /var/log/supervisor 23 | ADD supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf 24 | 25 | # Apache2 26 | ENV APACHE_RUN_USER www-data 27 | ENV APACHE_RUN_GROUP www-data 28 | ENV APACHE_LOG_DIR /var/log/apache2 29 | ENV APP_DOCUMENT_ROOT /var/www 30 | EXPOSE 80 31 | ADD apache2/app.conf /etc/apache2/sites-available/000-default.conf 32 | ADD apache2/apache2 /usr/local/sbin/apache2 33 | RUN chmod 755 /usr/local/sbin/apache2 34 | RUN a2enmod rewrite 35 | RUN sed -i "s/^\\( *export \+LANG.*\\)/#\\1/" /etc/apache2/envvars 36 | 37 | # PHP5 38 | ENV PHP_INI "" 39 | ENV XDEBUG_REMOTE_PORT "" 40 | ADD php5/app.ini /etc/php5/apache2/conf.d/90-app.ini 41 | ADD php5/app.ini /etc/php5/cli/conf.d/90-app.ini 42 | ADD php5/timezone.sh /usr/local/sbin/php5-timezone.sh 43 | 44 | # PHP application 45 | ADD app/init /usr/local/sbin/app-init 46 | RUN chmod 755 /usr/local/sbin/app-init 47 | ADD app/composer /usr/local/bin/composer 48 | RUN chmod 755 /usr/local/bin/composer 49 | RUN chown root.root /usr/local/bin/composer 50 | 51 | # System 52 | ENV TZ "" 53 | ENV LANG "" 54 | ADD system/init /usr/local/sbin/system-init 55 | RUN chmod 755 /usr/local/sbin/system-init 56 | ADD system/locale.sh /usr/local/sbin/system-locale.sh 57 | ADD system/timezone.sh /usr/local/sbin/system-timezone.sh 58 | 59 | # Others 60 | ENV HOME /root 61 | WORKDIR /root 62 | RUN mkdir /var/app 63 | RUN echo "This file is a placeholder to expose /var/app directory after creating a new container from Kitematic." > /var/app/.placeholder 64 | VOLUME /var/app 65 | 66 | # Command 67 | CMD ["/usr/local/sbin/system-init"] 68 | -------------------------------------------------------------------------------- /php-app/php55/apache2/apache2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ "x$PHP_INI" != "x" ]; then 4 | echo "$PHP_INI" | grep "^\/" 5 | RETVAL=$? 6 | if [ $RETVAL -ne 0 ]; then 7 | PHP_INI="/var/app/${PHP_INI}" 8 | fi 9 | 10 | if [ -e "$PHP_INI" ]; then 11 | ln -sf "$PHP_INI" /etc/php5/apache2/conf.d/99-app.ini 12 | ln -sf "$PHP_INI" /etc/php5/cli/conf.d/99-app.ini 13 | fi 14 | fi 15 | 16 | if [ "x$XDEBUG_REMOTE_PORT" != "x" ]; then 17 | sed -i "s/^ *\\(xdebug\\.remote_port\\) *= *.*/\\1=${XDEBUG_REMOTE_PORT}/" /etc/php5/apache2/conf.d/90-app.ini 18 | sed -i "s/^ *\\(xdebug\\.remote_port\\) *= *.*/\\1=${XDEBUG_REMOTE_PORT}/" /etc/php5/cli/conf.d/90-app.ini 19 | fi 20 | 21 | source /etc/apache2/envvars && exec /usr/sbin/apache2 -D FOREGROUND 22 | -------------------------------------------------------------------------------- /php-app/php55/apache2/app.conf: -------------------------------------------------------------------------------- 1 | 2 | DocumentRoot "${APP_DOCUMENT_ROOT}" 3 | 4 | 5 | AllowOverride AuthConfig FileInfo Indexes Limit Options=All,MultiViews 6 | Options FollowSymLinks MultiViews 7 | Require all granted 8 | 9 | 10 | CustomLog ${APACHE_LOG_DIR}/access.log combined 11 | ErrorLog ${APACHE_LOG_DIR}/error.log 12 | 13 | -------------------------------------------------------------------------------- /php-app/php55/app/composer: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | APACHE_RUN_USER=www-data 3 | application_dir="/var/app" 4 | 5 | cd $application_dir 6 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 "${application_dir}/composer.phar" "$@" 7 | -------------------------------------------------------------------------------- /php-app/php55/app/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | application_dir="/var/app" 6 | 7 | if [ "x$APACHE_RUN_USER" = "x" ]; then 8 | echo "ERROR: The environment variable \"APACHE_RUN_USER\" does not exist." 9 | 10 | exit 1 11 | fi 12 | 13 | if [ ! -d "$application_dir" ]; then 14 | echo "ERROR: \"$application_dir\" does not exist. Mount your PHP project root as \"$application_dir\" on the host." 15 | 16 | exit 1 17 | fi 18 | 19 | cd "$application_dir" 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | exit $RETVAL 23 | fi 24 | 25 | find "${application_dir}" ! -group $APACHE_RUN_GROUP -exec chgrp $APACHE_RUN_GROUP '{}' \; 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | exit $RETVAL 29 | fi 30 | 31 | find "${application_dir}" -type d ! -perm 2775 -exec chmod 2775 '{}' \; 32 | RETVAL=$? 33 | if [ $RETVAL -ne 0 ]; then 34 | exit $RETVAL 35 | fi 36 | 37 | find "${application_dir}" -type f ! -perm -g+rw -exec chmod g+rw '{}' \; 38 | RETVAL=$? 39 | if [ $RETVAL -ne 0 ]; then 40 | exit $RETVAL 41 | fi 42 | 43 | if [ ! -e "${application_dir}/composer.phar" ]; then 44 | sudo -u $APACHE_RUN_USER php -r "readfile('https://getcomposer.org/installer');" | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php 45 | RETVAL=$? 46 | if [ $RETVAL -ne 0 ]; then 47 | exit $RETVAL 48 | fi 49 | fi 50 | 51 | if [ -e "${application_dir}/composer.phar" ]; then 52 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php composer.phar self-update 53 | RETVAL=$? 54 | if [ $RETVAL -ne 0 ]; then 55 | exit $RETVAL 56 | fi 57 | 58 | if [ "x$APP_CREATE_PROJECT" = "x" ]; then 59 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php composer.phar install --no-interaction 60 | RETVAL=$? 61 | if [ $RETVAL -ne 0 ]; then 62 | exit $RETVAL 63 | fi 64 | else 65 | if [ "x$APP_CREATE_PROJECT_VERSION" = "x" ]; then 66 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 composer.phar create-project --no-interaction "$APP_CREATE_PROJECT" /tmp/app 67 | else 68 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 composer.phar create-project --no-interaction "$APP_CREATE_PROJECT" /tmp/app "$APP_CREATE_PROJECT_VERSION" 69 | fi 70 | RETVAL=$? 71 | if [ $RETVAL -ne 0 ]; then 72 | exit $RETVAL 73 | fi 74 | 75 | $( shopt -s dotglob nullglob && mv /tmp/app/* "${application_dir}" ) 76 | RETVAL=$? 77 | if [ $RETVAL -ne 0 ]; then 78 | exit $RETVAL 79 | fi 80 | 81 | rm -rf /tmp/app 82 | fi 83 | fi 84 | 85 | find "${application_dir}" ! -group $APACHE_RUN_GROUP -exec chgrp $APACHE_RUN_GROUP '{}' \; 86 | RETVAL=$? 87 | if [ $RETVAL -ne 0 ]; then 88 | exit $RETVAL 89 | fi 90 | 91 | find "${application_dir}" -type d ! -perm 2775 -exec chmod 2775 '{}' \; 92 | RETVAL=$? 93 | if [ $RETVAL -ne 0 ]; then 94 | exit $RETVAL 95 | fi 96 | 97 | find "${application_dir}" -type f ! -perm -g+rw -exec chmod g+rw '{}' \; 98 | RETVAL=$? 99 | if [ $RETVAL -ne 0 ]; then 100 | exit $RETVAL 101 | fi 102 | 103 | if [ "x$APP_INIT_SCRIPT" != "x" ]; then 104 | echo "$APP_INIT_SCRIPT" | grep "^\/" 105 | RETVAL=$? 106 | if [ $RETVAL -ne 0 ]; then 107 | APP_INIT_SCRIPT="${application_dir}/${APP_INIT_SCRIPT}" 108 | fi 109 | 110 | if [ -x "$APP_INIT_SCRIPT" ]; then 111 | "$APP_INIT_SCRIPT" 112 | RETVAL=$? 113 | if [ $RETVAL -ne 0 ]; then 114 | exit $RETVAL 115 | fi 116 | fi 117 | fi 118 | -------------------------------------------------------------------------------- /php-app/php55/php5/app.ini: -------------------------------------------------------------------------------- 1 | xdebug.max_nesting_level=200 2 | xdebug.overload_var_dump=Off 3 | xdebug.remote_autostart=Off 4 | xdebug.remote_connect_back=On 5 | xdebug.remote_enable=On 6 | xdebug.remote_port=9000 7 | session.cookie_secure=Off 8 | session.use_cookies=On 9 | session.use_only_cookies=On 10 | short_open_tag=Off 11 | -------------------------------------------------------------------------------- /php-app/php55/php5/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _php_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _php_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "date.timezone=$timezone" >> /etc/php5/apache2/conf.d/90-app.ini 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | echo "date.timezone=$timezone" >> /etc/php5/cli/conf.d/90-app.ini 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | -------------------------------------------------------------------------------- /php-app/php55/supervisor/supervisord.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | 4 | [program:apache2] 5 | command=/usr/local/sbin/apache2 6 | 7 | [program:app-init] 8 | command=/usr/local/sbin/app-init 9 | autorestart=false 10 | startsecs=0 11 | startretries=0 12 | -------------------------------------------------------------------------------- /php-app/php55/system/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | typeset script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | . "$script_dir/php5-timezone.sh" 6 | . "$script_dir/system-locale.sh" 7 | . "$script_dir/system-timezone.sh" 8 | 9 | apt-get update 10 | 11 | if [ "x$LANG" != "x" ]; then 12 | _system_locale_configure "$LANG" 13 | fi 14 | 15 | if [ "x$TZ" != "x" ]; then 16 | _system_timezone_configure "$TZ" 17 | RETVAL=$? 18 | if [ $RETVAL -eq 0 ]; then 19 | _php_timezone_configure "$TZ" 20 | fi 21 | fi 22 | 23 | /usr/bin/supervisord -c /etc/supervisor/supervisord.conf 24 | -------------------------------------------------------------------------------- /php-app/php55/system/locale.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_locale_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_locale_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local lang="$1" 11 | local lang_package_suffix=`echo $lang | grep -o '^[a-z]\+'` 12 | 13 | apt-get install -y "language-pack-${lang_package_suffix}" 14 | RETVAL=$? 15 | if [ $RETVAL -ne 0 ]; then 16 | return $RETVAL 17 | fi 18 | 19 | update-locale LANG="$lang" 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | export LANG="$lang" 26 | export LANGUAGE="$lang" 27 | 28 | return 0 29 | } 30 | -------------------------------------------------------------------------------- /php-app/php55/system/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "$timezone" > /etc/timezone 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | dpkg-reconfigure -f noninteractive tzdata 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | -------------------------------------------------------------------------------- /php-app/php56/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # php-app 3 | # 4 | 5 | FROM ubuntu:15.10 6 | MAINTAINER KUBO Atsuhiro 7 | 8 | RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections 9 | RUN apt-get update 10 | RUN apt-get -y upgrade 11 | RUN apt-get install -y apt-utils 12 | RUN apt-get install -y supervisor 13 | RUN apt-get install -y apache2 14 | RUN apt-get install -y mysql-client-core-5.6 15 | RUN apt-get install -y php5 php5-curl php5-intl php5-mysql php5-xdebug php5-apcu php5-dev 16 | RUN apt-get install -y git 17 | RUN apt-get install -y less vim-tiny 18 | RUN apt-get install -y apg 19 | RUN apt-get install -y sudo 20 | 21 | # Supervisor 22 | RUN mkdir -p /var/log/supervisor 23 | ADD supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf 24 | 25 | # Apache2 26 | ENV APACHE_RUN_USER www-data 27 | ENV APACHE_RUN_GROUP www-data 28 | ENV APACHE_LOG_DIR /var/log/apache2 29 | ENV APP_DOCUMENT_ROOT /var/www 30 | EXPOSE 80 31 | ADD apache2/app.conf /etc/apache2/sites-available/000-default.conf 32 | ADD apache2/apache2 /usr/local/sbin/apache2 33 | RUN chmod 755 /usr/local/sbin/apache2 34 | RUN a2enmod rewrite 35 | RUN sed -i "s/^\\( *export \+LANG.*\\)/#\\1/" /etc/apache2/envvars 36 | 37 | # PHP5 38 | ENV PHP_INI "" 39 | ENV XDEBUG_REMOTE_PORT "" 40 | ADD php5/app.ini /etc/php5/apache2/conf.d/90-app.ini 41 | ADD php5/app.ini /etc/php5/cli/conf.d/90-app.ini 42 | ADD php5/timezone.sh /usr/local/sbin/php5-timezone.sh 43 | 44 | # PHP application 45 | ADD app/init /usr/local/sbin/app-init 46 | RUN chmod 755 /usr/local/sbin/app-init 47 | ADD app/composer /usr/local/bin/composer 48 | RUN chmod 755 /usr/local/bin/composer 49 | RUN chown root.root /usr/local/bin/composer 50 | 51 | # System 52 | ENV TZ "" 53 | ENV LANG "" 54 | ADD system/init /usr/local/sbin/system-init 55 | RUN chmod 755 /usr/local/sbin/system-init 56 | ADD system/locale.sh /usr/local/sbin/system-locale.sh 57 | ADD system/timezone.sh /usr/local/sbin/system-timezone.sh 58 | 59 | # Others 60 | ENV HOME /root 61 | WORKDIR /root 62 | RUN mkdir /var/app 63 | RUN echo "This file is a placeholder to expose /var/app directory after creating a new container from Kitematic." > /var/app/.placeholder 64 | VOLUME /var/app 65 | 66 | # Command 67 | CMD ["/usr/local/sbin/system-init"] 68 | -------------------------------------------------------------------------------- /php-app/php56/apache2/apache2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ "x$PHP_INI" != "x" ]; then 4 | echo "$PHP_INI" | grep "^\/" 5 | RETVAL=$? 6 | if [ $RETVAL -ne 0 ]; then 7 | PHP_INI="/var/app/${PHP_INI}" 8 | fi 9 | 10 | if [ -e "$PHP_INI" ]; then 11 | ln -sf "$PHP_INI" /etc/php5/apache2/conf.d/99-app.ini 12 | ln -sf "$PHP_INI" /etc/php5/cli/conf.d/99-app.ini 13 | fi 14 | fi 15 | 16 | if [ "x$XDEBUG_REMOTE_PORT" != "x" ]; then 17 | sed -i "s/^ *\\(xdebug\\.remote_port\\) *= *.*/\\1=${XDEBUG_REMOTE_PORT}/" /etc/php5/apache2/conf.d/90-app.ini 18 | sed -i "s/^ *\\(xdebug\\.remote_port\\) *= *.*/\\1=${XDEBUG_REMOTE_PORT}/" /etc/php5/cli/conf.d/90-app.ini 19 | fi 20 | 21 | source /etc/apache2/envvars && exec /usr/sbin/apache2 -D FOREGROUND 22 | -------------------------------------------------------------------------------- /php-app/php56/apache2/app.conf: -------------------------------------------------------------------------------- 1 | 2 | DocumentRoot "${APP_DOCUMENT_ROOT}" 3 | 4 | 5 | AllowOverride AuthConfig FileInfo Indexes Limit Options=All,MultiViews 6 | Options FollowSymLinks MultiViews 7 | Require all granted 8 | 9 | 10 | CustomLog ${APACHE_LOG_DIR}/access.log combined 11 | ErrorLog ${APACHE_LOG_DIR}/error.log 12 | 13 | -------------------------------------------------------------------------------- /php-app/php56/app/composer: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | APACHE_RUN_USER=www-data 3 | application_dir="/var/app" 4 | 5 | cd $application_dir 6 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 "${application_dir}/composer.phar" "$@" 7 | -------------------------------------------------------------------------------- /php-app/php56/app/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | application_dir="/var/app" 6 | 7 | if [ "x$APACHE_RUN_USER" = "x" ]; then 8 | echo "ERROR: The environment variable \"APACHE_RUN_USER\" does not exist." 9 | 10 | exit 1 11 | fi 12 | 13 | if [ ! -d "$application_dir" ]; then 14 | echo "ERROR: \"$application_dir\" does not exist. Mount your PHP project root as \"$application_dir\" on the host." 15 | 16 | exit 1 17 | fi 18 | 19 | cd "$application_dir" 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | exit $RETVAL 23 | fi 24 | 25 | find "${application_dir}" ! -group $APACHE_RUN_GROUP -exec chgrp $APACHE_RUN_GROUP '{}' \; 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | exit $RETVAL 29 | fi 30 | 31 | find "${application_dir}" -type d ! -perm 2775 -exec chmod 2775 '{}' \; 32 | RETVAL=$? 33 | if [ $RETVAL -ne 0 ]; then 34 | exit $RETVAL 35 | fi 36 | 37 | find "${application_dir}" -type f ! -perm -g+rw -exec chmod g+rw '{}' \; 38 | RETVAL=$? 39 | if [ $RETVAL -ne 0 ]; then 40 | exit $RETVAL 41 | fi 42 | 43 | if [ ! -e "${application_dir}/composer.phar" ]; then 44 | sudo -u $APACHE_RUN_USER php -r "readfile('https://getcomposer.org/installer');" | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php 45 | RETVAL=$? 46 | if [ $RETVAL -ne 0 ]; then 47 | exit $RETVAL 48 | fi 49 | fi 50 | 51 | if [ -e "${application_dir}/composer.phar" ]; then 52 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php composer.phar self-update 53 | RETVAL=$? 54 | if [ $RETVAL -ne 0 ]; then 55 | exit $RETVAL 56 | fi 57 | 58 | if [ "x$APP_CREATE_PROJECT" = "x" ]; then 59 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php composer.phar install --no-interaction 60 | RETVAL=$? 61 | if [ $RETVAL -ne 0 ]; then 62 | exit $RETVAL 63 | fi 64 | else 65 | if [ "x$APP_CREATE_PROJECT_VERSION" = "x" ]; then 66 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 composer.phar create-project --no-interaction "$APP_CREATE_PROJECT" /tmp/app 67 | else 68 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 composer.phar create-project --no-interaction "$APP_CREATE_PROJECT" /tmp/app "$APP_CREATE_PROJECT_VERSION" 69 | fi 70 | RETVAL=$? 71 | if [ $RETVAL -ne 0 ]; then 72 | exit $RETVAL 73 | fi 74 | 75 | $( shopt -s dotglob nullglob && mv /tmp/app/* "${application_dir}" ) 76 | RETVAL=$? 77 | if [ $RETVAL -ne 0 ]; then 78 | exit $RETVAL 79 | fi 80 | 81 | rm -rf /tmp/app 82 | fi 83 | fi 84 | 85 | find "${application_dir}" ! -group $APACHE_RUN_GROUP -exec chgrp $APACHE_RUN_GROUP '{}' \; 86 | RETVAL=$? 87 | if [ $RETVAL -ne 0 ]; then 88 | exit $RETVAL 89 | fi 90 | 91 | find "${application_dir}" -type d ! -perm 2775 -exec chmod 2775 '{}' \; 92 | RETVAL=$? 93 | if [ $RETVAL -ne 0 ]; then 94 | exit $RETVAL 95 | fi 96 | 97 | find "${application_dir}" -type f ! -perm -g+rw -exec chmod g+rw '{}' \; 98 | RETVAL=$? 99 | if [ $RETVAL -ne 0 ]; then 100 | exit $RETVAL 101 | fi 102 | 103 | if [ "x$APP_INIT_SCRIPT" != "x" ]; then 104 | echo "$APP_INIT_SCRIPT" | grep "^\/" 105 | RETVAL=$? 106 | if [ $RETVAL -ne 0 ]; then 107 | APP_INIT_SCRIPT="${application_dir}/${APP_INIT_SCRIPT}" 108 | fi 109 | 110 | if [ -x "$APP_INIT_SCRIPT" ]; then 111 | "$APP_INIT_SCRIPT" 112 | RETVAL=$? 113 | if [ $RETVAL -ne 0 ]; then 114 | exit $RETVAL 115 | fi 116 | fi 117 | fi 118 | -------------------------------------------------------------------------------- /php-app/php56/php5/app.ini: -------------------------------------------------------------------------------- 1 | xdebug.max_nesting_level=200 2 | xdebug.overload_var_dump=Off 3 | xdebug.remote_autostart=Off 4 | xdebug.remote_connect_back=On 5 | xdebug.remote_enable=On 6 | xdebug.remote_port=9000 7 | session.cookie_secure=Off 8 | session.use_cookies=On 9 | session.use_only_cookies=On 10 | short_open_tag=Off 11 | -------------------------------------------------------------------------------- /php-app/php56/php5/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _php_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _php_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "date.timezone=$timezone" >> /etc/php5/apache2/conf.d/90-app.ini 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | echo "date.timezone=$timezone" >> /etc/php5/cli/conf.d/90-app.ini 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | -------------------------------------------------------------------------------- /php-app/php56/supervisor/supervisord.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | 4 | [program:apache2] 5 | command=/usr/local/sbin/apache2 6 | 7 | [program:app-init] 8 | command=/usr/local/sbin/app-init 9 | autorestart=false 10 | startsecs=0 11 | startretries=0 12 | -------------------------------------------------------------------------------- /php-app/php56/system/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | typeset script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | . "$script_dir/php5-timezone.sh" 6 | . "$script_dir/system-locale.sh" 7 | . "$script_dir/system-timezone.sh" 8 | 9 | apt-get update 10 | 11 | if [ "x$LANG" != "x" ]; then 12 | _system_locale_configure "$LANG" 13 | fi 14 | 15 | if [ "x$TZ" != "x" ]; then 16 | _system_timezone_configure "$TZ" 17 | RETVAL=$? 18 | if [ $RETVAL -eq 0 ]; then 19 | _php_timezone_configure "$TZ" 20 | fi 21 | fi 22 | 23 | /usr/bin/supervisord -c /etc/supervisor/supervisord.conf 24 | -------------------------------------------------------------------------------- /php-app/php56/system/locale.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_locale_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_locale_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local lang="$1" 11 | local lang_package_suffix=`echo $lang | grep -o '^[a-z]\+'` 12 | 13 | apt-get install -y "language-pack-${lang_package_suffix}" 14 | RETVAL=$? 15 | if [ $RETVAL -ne 0 ]; then 16 | return $RETVAL 17 | fi 18 | 19 | update-locale LANG="$lang" 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | export LANG="$lang" 26 | export LANGUAGE="$lang" 27 | 28 | return 0 29 | } 30 | -------------------------------------------------------------------------------- /php-app/php56/system/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "$timezone" > /etc/timezone 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | dpkg-reconfigure -f noninteractive tzdata 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | -------------------------------------------------------------------------------- /php-app/php70/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # php-app 3 | # 4 | 5 | FROM ubuntu:16.04 6 | MAINTAINER KUBO Atsuhiro 7 | 8 | RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections 9 | RUN apt-get update 10 | RUN apt-get -y upgrade 11 | RUN apt-get install -y apt-utils 12 | RUN apt-get install -y supervisor 13 | RUN apt-get install -y apache2 14 | RUN apt-get install -y mysql-client-core-5.7 15 | RUN apt-get install -y php7.0 php7.0-curl php7.0-intl php7.0-mysql php-xdebug php-apcu php7.0-dev libapache2-mod-php7.0 php7.0-mbstring php7.0-zip 16 | RUN apt-get install -y git 17 | RUN apt-get install -y less vim-tiny 18 | RUN apt-get install -y apg 19 | RUN apt-get install -y sudo 20 | RUN apt-get install -y unzip 21 | 22 | # Supervisor 23 | RUN mkdir -p /var/log/supervisor 24 | ADD supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf 25 | 26 | # Apache2 27 | ENV APACHE_RUN_USER www-data 28 | ENV APACHE_RUN_GROUP www-data 29 | ENV APACHE_LOG_DIR /var/log/apache2 30 | ENV APP_DOCUMENT_ROOT /var/www 31 | EXPOSE 80 32 | ADD apache2/app.conf /etc/apache2/sites-available/000-default.conf 33 | ADD apache2/apache2 /usr/local/sbin/apache2 34 | RUN chmod 755 /usr/local/sbin/apache2 35 | RUN a2enmod rewrite 36 | RUN sed -i "s/^\\( *export \+LANG.*\\)/#\\1/" /etc/apache2/envvars 37 | 38 | # PHP7 39 | ENV PHP_INI "" 40 | ENV XDEBUG_REMOTE_PORT "" 41 | ADD php7/app.ini /etc/php/7.0/apache2/conf.d/90-app.ini 42 | ADD php7/app.ini /etc/php/7.0/cli/conf.d/90-app.ini 43 | ADD php7/timezone.sh /usr/local/sbin/php7-timezone.sh 44 | 45 | # PHP application 46 | ADD app/init /usr/local/sbin/app-init 47 | RUN chmod 755 /usr/local/sbin/app-init 48 | ADD app/composer /usr/local/bin/composer 49 | RUN chmod 755 /usr/local/bin/composer 50 | RUN chown root.root /usr/local/bin/composer 51 | 52 | # System 53 | ENV TZ "" 54 | ENV LANG "" 55 | ADD system/init /usr/local/sbin/system-init 56 | RUN chmod 755 /usr/local/sbin/system-init 57 | ADD system/locale.sh /usr/local/sbin/system-locale.sh 58 | ADD system/timezone.sh /usr/local/sbin/system-timezone.sh 59 | 60 | # Others 61 | ENV HOME /root 62 | WORKDIR /root 63 | RUN mkdir /var/app 64 | RUN echo "This file is a placeholder to expose /var/app directory after creating a new container from Kitematic." > /var/app/.placeholder 65 | VOLUME /var/app 66 | 67 | # Command 68 | CMD ["/usr/local/sbin/system-init"] 69 | -------------------------------------------------------------------------------- /php-app/php70/apache2/apache2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ "x$PHP_INI" != "x" ]; then 4 | echo "$PHP_INI" | grep "^\/" 5 | RETVAL=$? 6 | if [ $RETVAL -ne 0 ]; then 7 | PHP_INI="/var/app/${PHP_INI}" 8 | fi 9 | 10 | if [ -e "$PHP_INI" ]; then 11 | ln -sf "$PHP_INI" /etc/php/7.0/apache2/conf.d/99-app.ini 12 | ln -sf "$PHP_INI" /etc/php/7.0/cli/conf.d/99-app.ini 13 | fi 14 | fi 15 | 16 | if [ "x$XDEBUG_REMOTE_PORT" != "x" ]; then 17 | sed -i "s/^ *\\(xdebug\\.remote_port\\) *= *.*/\\1=${XDEBUG_REMOTE_PORT}/" /etc/php/7.0/apache2/conf.d/90-app.ini 18 | sed -i "s/^ *\\(xdebug\\.remote_port\\) *= *.*/\\1=${XDEBUG_REMOTE_PORT}/" /etc/php/7.0/cli/conf.d/90-app.ini 19 | fi 20 | 21 | source /etc/apache2/envvars && exec /usr/sbin/apache2 -D FOREGROUND 22 | -------------------------------------------------------------------------------- /php-app/php70/apache2/app.conf: -------------------------------------------------------------------------------- 1 | 2 | DocumentRoot "${APP_DOCUMENT_ROOT}" 3 | 4 | 5 | AllowOverride AuthConfig FileInfo Indexes Limit Options=All,MultiViews 6 | Options FollowSymLinks MultiViews 7 | Require all granted 8 | 9 | 10 | CustomLog ${APACHE_LOG_DIR}/access.log combined 11 | ErrorLog ${APACHE_LOG_DIR}/error.log 12 | 13 | -------------------------------------------------------------------------------- /php-app/php70/app/composer: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | APACHE_RUN_USER=www-data 3 | application_dir="/var/app" 4 | 5 | cd $application_dir 6 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 "${application_dir}/composer.phar" "$@" 7 | -------------------------------------------------------------------------------- /php-app/php70/app/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | application_dir="/var/app" 6 | 7 | if [ "x$APACHE_RUN_USER" = "x" ]; then 8 | echo "ERROR: The environment variable \"APACHE_RUN_USER\" does not exist." 9 | 10 | exit 1 11 | fi 12 | 13 | if [ ! -d "$application_dir" ]; then 14 | echo "ERROR: \"$application_dir\" does not exist. Mount your PHP project root as \"$application_dir\" on the host." 15 | 16 | exit 1 17 | fi 18 | 19 | cd "$application_dir" 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | exit $RETVAL 23 | fi 24 | 25 | find "${application_dir}" ! -group $APACHE_RUN_GROUP -exec chgrp $APACHE_RUN_GROUP '{}' \; 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | exit $RETVAL 29 | fi 30 | 31 | find "${application_dir}" -type d ! -perm 2775 -exec chmod 2775 '{}' \; 32 | RETVAL=$? 33 | if [ $RETVAL -ne 0 ]; then 34 | exit $RETVAL 35 | fi 36 | 37 | find "${application_dir}" -type f ! -perm -g+rw -exec chmod g+rw '{}' \; 38 | RETVAL=$? 39 | if [ $RETVAL -ne 0 ]; then 40 | exit $RETVAL 41 | fi 42 | 43 | if [ ! -e "${application_dir}/composer.phar" ]; then 44 | sudo -u $APACHE_RUN_USER php -r "readfile('https://getcomposer.org/installer');" | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php 45 | RETVAL=$? 46 | if [ $RETVAL -ne 0 ]; then 47 | exit $RETVAL 48 | fi 49 | fi 50 | 51 | if [ -e "${application_dir}/composer.phar" ]; then 52 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php composer.phar self-update 53 | RETVAL=$? 54 | if [ $RETVAL -ne 0 ]; then 55 | exit $RETVAL 56 | fi 57 | 58 | if [ "x$APP_CREATE_PROJECT" = "x" ]; then 59 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php composer.phar install --no-interaction 60 | RETVAL=$? 61 | if [ $RETVAL -ne 0 ]; then 62 | exit $RETVAL 63 | fi 64 | else 65 | if [ "x$APP_CREATE_PROJECT_VERSION" = "x" ]; then 66 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 composer.phar create-project --no-interaction "$APP_CREATE_PROJECT" /tmp/app 67 | else 68 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 composer.phar create-project --no-interaction "$APP_CREATE_PROJECT" /tmp/app "$APP_CREATE_PROJECT_VERSION" 69 | fi 70 | RETVAL=$? 71 | if [ $RETVAL -ne 0 ]; then 72 | exit $RETVAL 73 | fi 74 | 75 | $( shopt -s dotglob nullglob && mv /tmp/app/* "${application_dir}" ) 76 | RETVAL=$? 77 | if [ $RETVAL -ne 0 ]; then 78 | exit $RETVAL 79 | fi 80 | 81 | rm -rf /tmp/app 82 | fi 83 | fi 84 | 85 | find "${application_dir}" ! -group $APACHE_RUN_GROUP -exec chgrp $APACHE_RUN_GROUP '{}' \; 86 | RETVAL=$? 87 | if [ $RETVAL -ne 0 ]; then 88 | exit $RETVAL 89 | fi 90 | 91 | find "${application_dir}" -type d ! -perm 2775 -exec chmod 2775 '{}' \; 92 | RETVAL=$? 93 | if [ $RETVAL -ne 0 ]; then 94 | exit $RETVAL 95 | fi 96 | 97 | find "${application_dir}" -type f ! -perm -g+rw -exec chmod g+rw '{}' \; 98 | RETVAL=$? 99 | if [ $RETVAL -ne 0 ]; then 100 | exit $RETVAL 101 | fi 102 | 103 | if [ "x$APP_INIT_SCRIPT" != "x" ]; then 104 | echo "$APP_INIT_SCRIPT" | grep "^\/" 105 | RETVAL=$? 106 | if [ $RETVAL -ne 0 ]; then 107 | APP_INIT_SCRIPT="${application_dir}/${APP_INIT_SCRIPT}" 108 | fi 109 | 110 | if [ -x "$APP_INIT_SCRIPT" ]; then 111 | "$APP_INIT_SCRIPT" 112 | RETVAL=$? 113 | if [ $RETVAL -ne 0 ]; then 114 | exit $RETVAL 115 | fi 116 | fi 117 | fi 118 | -------------------------------------------------------------------------------- /php-app/php70/php7/app.ini: -------------------------------------------------------------------------------- 1 | xdebug.max_nesting_level=200 2 | xdebug.overload_var_dump=Off 3 | xdebug.remote_autostart=Off 4 | xdebug.remote_connect_back=On 5 | xdebug.remote_enable=On 6 | xdebug.remote_port=9000 7 | session.cookie_secure=Off 8 | session.use_cookies=On 9 | session.use_only_cookies=On 10 | short_open_tag=Off 11 | -------------------------------------------------------------------------------- /php-app/php70/php7/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _php_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _php_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "date.timezone=$timezone" >> /etc/php/7.0/apache2/conf.d/90-app.ini 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | echo "date.timezone=$timezone" >> /etc/php/7.0/cli/conf.d/90-app.ini 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | -------------------------------------------------------------------------------- /php-app/php70/supervisor/supervisord.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | 4 | [program:apache2] 5 | command=/usr/local/sbin/apache2 6 | 7 | [program:app-init] 8 | command=/usr/local/sbin/app-init 9 | autorestart=false 10 | startsecs=0 11 | startretries=0 12 | -------------------------------------------------------------------------------- /php-app/php70/system/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | typeset script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | . "$script_dir/php7-timezone.sh" 6 | . "$script_dir/system-locale.sh" 7 | . "$script_dir/system-timezone.sh" 8 | 9 | apt-get update 10 | 11 | if [ "x$LANG" != "x" ]; then 12 | _system_locale_configure "$LANG" 13 | fi 14 | 15 | if [ "x$TZ" != "x" ]; then 16 | _system_timezone_configure "$TZ" 17 | RETVAL=$? 18 | if [ $RETVAL -eq 0 ]; then 19 | _php_timezone_configure "$TZ" 20 | fi 21 | fi 22 | 23 | /usr/bin/supervisord -c /etc/supervisor/supervisord.conf 24 | -------------------------------------------------------------------------------- /php-app/php70/system/locale.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_locale_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_locale_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local lang="$1" 11 | local lang_package_suffix=`echo $lang | grep -o '^[a-z]\+'` 12 | 13 | apt-get install -y "language-pack-${lang_package_suffix}" 14 | RETVAL=$? 15 | if [ $RETVAL -ne 0 ]; then 16 | return $RETVAL 17 | fi 18 | 19 | update-locale LANG="$lang" 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | export LANG="$lang" 26 | export LANGUAGE="$lang" 27 | 28 | return 0 29 | } 30 | -------------------------------------------------------------------------------- /php-app/php70/system/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "$timezone" > /etc/timezone 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | dpkg-reconfigure -f noninteractive tzdata 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | -------------------------------------------------------------------------------- /php-app/php71/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # php-app 3 | # 4 | 5 | FROM ubuntu:16.04 6 | MAINTAINER Atsuhiro Kubo 7 | 8 | RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections 9 | RUN apt-get update 10 | RUN apt-get -y upgrade 11 | RUN apt-get install -y apt-utils 12 | RUN apt-get install -y software-properties-common 13 | RUN apt-get install -y supervisor 14 | RUN apt-get install -y apache2 15 | RUN apt-get install -y mysql-client-core-5.7 16 | RUN apt-get install -y git 17 | RUN apt-get install -y less vim-tiny 18 | RUN apt-get install -y apg 19 | RUN apt-get install -y sudo 20 | RUN apt-get install -y unzip 21 | 22 | # PHP 23 | RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php 24 | RUN apt-get update 25 | RUN apt-get install -y php7.1 php7.1-curl php7.1-intl php7.1-mysql php-xdebug php-apcu php7.1-dev libapache2-mod-php7.1 php7.1-mbstring php7.1-zip 26 | 27 | # Supervisor 28 | RUN mkdir -p /var/log/supervisor 29 | ADD supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf 30 | 31 | # Apache2 32 | ENV APACHE_RUN_USER www-data 33 | ENV APACHE_RUN_GROUP www-data 34 | ENV APACHE_LOG_DIR /var/log/apache2 35 | ENV APP_DOCUMENT_ROOT /var/www 36 | EXPOSE 80 37 | ADD apache2/app.conf /etc/apache2/sites-available/000-default.conf 38 | ADD apache2/apache2 /usr/local/sbin/apache2 39 | RUN chmod 755 /usr/local/sbin/apache2 40 | RUN a2enmod rewrite 41 | RUN sed -i "s/^\\( *export \+LANG.*\\)/#\\1/" /etc/apache2/envvars 42 | 43 | # PHP 44 | ENV PHP_INI "" 45 | ENV XDEBUG_REMOTE_PORT "" 46 | ADD php7/app.ini /etc/php/7.1/apache2/conf.d/90-app.ini 47 | ADD php7/app.ini /etc/php/7.1/cli/conf.d/90-app.ini 48 | ADD php7/timezone.sh /usr/local/sbin/php7-timezone.sh 49 | 50 | # PHP application 51 | ADD app/init /usr/local/sbin/app-init 52 | RUN chmod 755 /usr/local/sbin/app-init 53 | ADD app/composer /usr/local/bin/composer 54 | RUN chmod 755 /usr/local/bin/composer 55 | RUN chown root.root /usr/local/bin/composer 56 | 57 | # System 58 | ENV TZ "" 59 | ENV LANG "" 60 | ADD system/init /usr/local/sbin/system-init 61 | RUN chmod 755 /usr/local/sbin/system-init 62 | ADD system/locale.sh /usr/local/sbin/system-locale.sh 63 | ADD system/timezone.sh /usr/local/sbin/system-timezone.sh 64 | 65 | # Others 66 | ENV HOME /root 67 | WORKDIR /root 68 | RUN mkdir /var/app 69 | RUN echo "This file is a placeholder to expose /var/app directory after creating a new container from Kitematic." > /var/app/.placeholder 70 | VOLUME /var/app 71 | 72 | # Command 73 | CMD ["/usr/local/sbin/system-init"] 74 | -------------------------------------------------------------------------------- /php-app/php71/apache2/apache2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ "x$PHP_INI" != "x" ]; then 4 | echo "$PHP_INI" | grep "^\/" 5 | RETVAL=$? 6 | if [ $RETVAL -ne 0 ]; then 7 | PHP_INI="/var/app/${PHP_INI}" 8 | fi 9 | 10 | if [ -e "$PHP_INI" ]; then 11 | ln -sf "$PHP_INI" /etc/php/7.1/apache2/conf.d/99-app.ini 12 | ln -sf "$PHP_INI" /etc/php/7.1/cli/conf.d/99-app.ini 13 | fi 14 | fi 15 | 16 | if [ "x$XDEBUG_REMOTE_PORT" != "x" ]; then 17 | sed -i "s/^ *\\(xdebug\\.remote_port\\) *= *.*/\\1=${XDEBUG_REMOTE_PORT}/" /etc/php/7.1/apache2/conf.d/90-app.ini 18 | sed -i "s/^ *\\(xdebug\\.remote_port\\) *= *.*/\\1=${XDEBUG_REMOTE_PORT}/" /etc/php/7.1/cli/conf.d/90-app.ini 19 | fi 20 | 21 | source /etc/apache2/envvars && exec /usr/sbin/apache2 -D FOREGROUND 22 | -------------------------------------------------------------------------------- /php-app/php71/apache2/app.conf: -------------------------------------------------------------------------------- 1 | 2 | DocumentRoot "${APP_DOCUMENT_ROOT}" 3 | 4 | 5 | AllowOverride AuthConfig FileInfo Indexes Limit Options=All,MultiViews 6 | Options FollowSymLinks MultiViews 7 | Require all granted 8 | 9 | 10 | CustomLog ${APACHE_LOG_DIR}/access.log combined 11 | ErrorLog ${APACHE_LOG_DIR}/error.log 12 | 13 | -------------------------------------------------------------------------------- /php-app/php71/app/composer: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | APACHE_RUN_USER=www-data 3 | application_dir="/var/app" 4 | 5 | cd $application_dir 6 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 "${application_dir}/composer.phar" "$@" 7 | -------------------------------------------------------------------------------- /php-app/php71/app/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | application_dir="/var/app" 6 | 7 | if [ "x$APACHE_RUN_USER" = "x" ]; then 8 | echo "ERROR: The environment variable \"APACHE_RUN_USER\" does not exist." 9 | 10 | exit 1 11 | fi 12 | 13 | if [ ! -d "$application_dir" ]; then 14 | echo "ERROR: \"$application_dir\" does not exist. Mount your PHP project root as \"$application_dir\" on the host." 15 | 16 | exit 1 17 | fi 18 | 19 | cd "$application_dir" 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | exit $RETVAL 23 | fi 24 | 25 | find "${application_dir}" ! -group $APACHE_RUN_GROUP -exec chgrp $APACHE_RUN_GROUP '{}' \; 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | exit $RETVAL 29 | fi 30 | 31 | find "${application_dir}" -type d ! -perm 2775 -exec chmod 2775 '{}' \; 32 | RETVAL=$? 33 | if [ $RETVAL -ne 0 ]; then 34 | exit $RETVAL 35 | fi 36 | 37 | find "${application_dir}" -type f ! -perm -g+rw -exec chmod g+rw '{}' \; 38 | RETVAL=$? 39 | if [ $RETVAL -ne 0 ]; then 40 | exit $RETVAL 41 | fi 42 | 43 | if [ ! -e "${application_dir}/composer.phar" ]; then 44 | sudo -u $APACHE_RUN_USER php -r "readfile('https://getcomposer.org/installer');" | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php 45 | RETVAL=$? 46 | if [ $RETVAL -ne 0 ]; then 47 | exit $RETVAL 48 | fi 49 | fi 50 | 51 | if [ -e "${application_dir}/composer.phar" ]; then 52 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php composer.phar self-update 53 | RETVAL=$? 54 | if [ $RETVAL -ne 0 ]; then 55 | exit $RETVAL 56 | fi 57 | 58 | if [ "x$APP_CREATE_PROJECT" = "x" ]; then 59 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php composer.phar install --no-interaction 60 | RETVAL=$? 61 | if [ $RETVAL -ne 0 ]; then 62 | exit $RETVAL 63 | fi 64 | else 65 | if [ "x$APP_CREATE_PROJECT_VERSION" = "x" ]; then 66 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 composer.phar create-project --no-interaction "$APP_CREATE_PROJECT" /tmp/app 67 | else 68 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 composer.phar create-project --no-interaction "$APP_CREATE_PROJECT" /tmp/app "$APP_CREATE_PROJECT_VERSION" 69 | fi 70 | RETVAL=$? 71 | if [ $RETVAL -ne 0 ]; then 72 | exit $RETVAL 73 | fi 74 | 75 | $( shopt -s dotglob nullglob && mv /tmp/app/* "${application_dir}" ) 76 | RETVAL=$? 77 | if [ $RETVAL -ne 0 ]; then 78 | exit $RETVAL 79 | fi 80 | 81 | rm -rf /tmp/app 82 | fi 83 | fi 84 | 85 | find "${application_dir}" ! -group $APACHE_RUN_GROUP -exec chgrp $APACHE_RUN_GROUP '{}' \; 86 | RETVAL=$? 87 | if [ $RETVAL -ne 0 ]; then 88 | exit $RETVAL 89 | fi 90 | 91 | find "${application_dir}" -type d ! -perm 2775 -exec chmod 2775 '{}' \; 92 | RETVAL=$? 93 | if [ $RETVAL -ne 0 ]; then 94 | exit $RETVAL 95 | fi 96 | 97 | find "${application_dir}" -type f ! -perm -g+rw -exec chmod g+rw '{}' \; 98 | RETVAL=$? 99 | if [ $RETVAL -ne 0 ]; then 100 | exit $RETVAL 101 | fi 102 | 103 | if [ "x$APP_INIT_SCRIPT" != "x" ]; then 104 | echo "$APP_INIT_SCRIPT" | grep "^\/" 105 | RETVAL=$? 106 | if [ $RETVAL -ne 0 ]; then 107 | APP_INIT_SCRIPT="${application_dir}/${APP_INIT_SCRIPT}" 108 | fi 109 | 110 | if [ -x "$APP_INIT_SCRIPT" ]; then 111 | "$APP_INIT_SCRIPT" 112 | RETVAL=$? 113 | if [ $RETVAL -ne 0 ]; then 114 | exit $RETVAL 115 | fi 116 | fi 117 | fi 118 | -------------------------------------------------------------------------------- /php-app/php71/php7/app.ini: -------------------------------------------------------------------------------- 1 | xdebug.max_nesting_level=200 2 | xdebug.overload_var_dump=Off 3 | xdebug.remote_autostart=Off 4 | xdebug.remote_connect_back=On 5 | xdebug.remote_enable=On 6 | xdebug.remote_port=9000 7 | session.cookie_secure=Off 8 | session.use_cookies=On 9 | session.use_only_cookies=On 10 | short_open_tag=Off 11 | -------------------------------------------------------------------------------- /php-app/php71/php7/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _php_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _php_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "date.timezone=$timezone" >> /etc/php/7.1/apache2/conf.d/90-app.ini 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | echo "date.timezone=$timezone" >> /etc/php/7.1/cli/conf.d/90-app.ini 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | -------------------------------------------------------------------------------- /php-app/php71/supervisor/supervisord.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | 4 | [program:apache2] 5 | command=/usr/local/sbin/apache2 6 | 7 | [program:app-init] 8 | command=/usr/local/sbin/app-init 9 | autorestart=false 10 | startsecs=0 11 | startretries=0 12 | -------------------------------------------------------------------------------- /php-app/php71/system/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | typeset script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | . "$script_dir/php7-timezone.sh" 6 | . "$script_dir/system-locale.sh" 7 | . "$script_dir/system-timezone.sh" 8 | 9 | apt-get update 10 | 11 | if [ "x$LANG" != "x" ]; then 12 | _system_locale_configure "$LANG" 13 | fi 14 | 15 | if [ "x$TZ" != "x" ]; then 16 | _system_timezone_configure "$TZ" 17 | RETVAL=$? 18 | if [ $RETVAL -eq 0 ]; then 19 | _php_timezone_configure "$TZ" 20 | fi 21 | fi 22 | 23 | /usr/bin/supervisord -c /etc/supervisor/supervisord.conf 24 | -------------------------------------------------------------------------------- /php-app/php71/system/locale.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_locale_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_locale_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local lang="$1" 11 | local lang_package_suffix=`echo $lang | grep -o '^[a-z]\+'` 12 | 13 | apt-get install -y "language-pack-${lang_package_suffix}" 14 | RETVAL=$? 15 | if [ $RETVAL -ne 0 ]; then 16 | return $RETVAL 17 | fi 18 | 19 | update-locale LANG="$lang" 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | export LANG="$lang" 26 | export LANGUAGE="$lang" 27 | 28 | return 0 29 | } 30 | -------------------------------------------------------------------------------- /php-app/php71/system/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "$timezone" > /etc/timezone 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | dpkg-reconfigure -f noninteractive tzdata 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | -------------------------------------------------------------------------------- /php-app/php72/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # php-app 3 | # 4 | 5 | FROM ubuntu:18.04 6 | MAINTAINER Atsuhiro Kubo 7 | 8 | RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections 9 | RUN apt-get update 10 | RUN apt-get -y upgrade 11 | RUN apt-get install -y apt-utils 12 | RUN apt-get install -y software-properties-common 13 | RUN apt-get install -y supervisor 14 | RUN apt-get install -y apache2 15 | RUN apt-get install -y mysql-client-core-5.7 16 | RUN apt-get install -y git 17 | RUN apt-get install -y less vim-tiny 18 | RUN apt-get install -y apg 19 | RUN apt-get install -y sudo 20 | RUN apt-get install -y unzip 21 | 22 | # PHP 23 | RUN apt-get update 24 | RUN apt-get install -y php7.2 php7.2-curl php7.2-intl php7.2-mysql php-xdebug php-apcu php7.2-dev libapache2-mod-php7.2 php7.2-mbstring php7.2-zip 25 | 26 | # Supervisor 27 | RUN mkdir -p /var/log/supervisor 28 | ADD supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf 29 | 30 | # Apache2 31 | ENV APACHE_RUN_USER www-data 32 | ENV APACHE_RUN_GROUP www-data 33 | ENV APACHE_LOG_DIR /var/log/apache2 34 | ENV APP_DOCUMENT_ROOT /var/www 35 | EXPOSE 80 36 | ADD apache2/app.conf /etc/apache2/sites-available/000-default.conf 37 | ADD apache2/apache2 /usr/local/sbin/apache2 38 | RUN chmod 755 /usr/local/sbin/apache2 39 | RUN a2enmod rewrite 40 | RUN sed -i "s/^\\( *export \+LANG.*\\)/#\\1/" /etc/apache2/envvars 41 | 42 | # PHP 43 | ENV PHP_INI "" 44 | ENV XDEBUG_REMOTE_PORT "" 45 | ADD php7/app.ini /etc/php/7.2/apache2/conf.d/90-app.ini 46 | ADD php7/app.ini /etc/php/7.2/cli/conf.d/90-app.ini 47 | ADD php7/timezone.sh /usr/local/sbin/php7-timezone.sh 48 | 49 | # PHP application 50 | ADD app/init /usr/local/sbin/app-init 51 | RUN chmod 755 /usr/local/sbin/app-init 52 | ADD app/composer /usr/local/bin/composer 53 | RUN chmod 755 /usr/local/bin/composer 54 | RUN chown root.root /usr/local/bin/composer 55 | 56 | # System 57 | ENV TZ "" 58 | ENV LANG "" 59 | ADD system/init /usr/local/sbin/system-init 60 | RUN chmod 755 /usr/local/sbin/system-init 61 | ADD system/locale.sh /usr/local/sbin/system-locale.sh 62 | ADD system/timezone.sh /usr/local/sbin/system-timezone.sh 63 | 64 | # Others 65 | ENV HOME /root 66 | WORKDIR /root 67 | RUN mkdir /var/app 68 | RUN echo "This file is a placeholder to expose /var/app directory after creating a new container from Kitematic." > /var/app/.placeholder 69 | VOLUME /var/app 70 | 71 | # Command 72 | CMD ["/usr/local/sbin/system-init"] 73 | -------------------------------------------------------------------------------- /php-app/php72/apache2/apache2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ "x$PHP_INI" != "x" ]; then 4 | echo "$PHP_INI" | grep "^\/" 5 | RETVAL=$? 6 | if [ $RETVAL -ne 0 ]; then 7 | PHP_INI="/var/app/${PHP_INI}" 8 | fi 9 | 10 | if [ -e "$PHP_INI" ]; then 11 | ln -sf "$PHP_INI" /etc/php/7.2/apache2/conf.d/99-app.ini 12 | ln -sf "$PHP_INI" /etc/php/7.2/cli/conf.d/99-app.ini 13 | fi 14 | fi 15 | 16 | if [ "x$XDEBUG_REMOTE_PORT" != "x" ]; then 17 | sed -i "s/^ *\\(xdebug\\.remote_port\\) *= *.*/\\1=${XDEBUG_REMOTE_PORT}/" /etc/php/7.2/apache2/conf.d/90-app.ini 18 | sed -i "s/^ *\\(xdebug\\.remote_port\\) *= *.*/\\1=${XDEBUG_REMOTE_PORT}/" /etc/php/7.2/cli/conf.d/90-app.ini 19 | fi 20 | 21 | source /etc/apache2/envvars && exec /usr/sbin/apache2 -D FOREGROUND 22 | -------------------------------------------------------------------------------- /php-app/php72/apache2/app.conf: -------------------------------------------------------------------------------- 1 | 2 | DocumentRoot "${APP_DOCUMENT_ROOT}" 3 | 4 | 5 | AllowOverride AuthConfig FileInfo Indexes Limit Options=All,MultiViews 6 | Options FollowSymLinks MultiViews 7 | Require all granted 8 | 9 | 10 | CustomLog ${APACHE_LOG_DIR}/access.log combined 11 | ErrorLog ${APACHE_LOG_DIR}/error.log 12 | 13 | -------------------------------------------------------------------------------- /php-app/php72/app/composer: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | APACHE_RUN_USER=www-data 3 | application_dir="/var/app" 4 | 5 | cd $application_dir 6 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 "${application_dir}/composer.phar" "$@" 7 | -------------------------------------------------------------------------------- /php-app/php72/app/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | application_dir="/var/app" 6 | 7 | if [ "x$APACHE_RUN_USER" = "x" ]; then 8 | echo "ERROR: The environment variable \"APACHE_RUN_USER\" does not exist." 9 | 10 | exit 1 11 | fi 12 | 13 | if [ ! -d "$application_dir" ]; then 14 | echo "ERROR: \"$application_dir\" does not exist. Mount your PHP project root as \"$application_dir\" on the host." 15 | 16 | exit 1 17 | fi 18 | 19 | cd "$application_dir" 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | exit $RETVAL 23 | fi 24 | 25 | find "${application_dir}" ! -group $APACHE_RUN_GROUP -exec chgrp $APACHE_RUN_GROUP '{}' \; 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | exit $RETVAL 29 | fi 30 | 31 | find "${application_dir}" -type d ! -perm 2775 -exec chmod 2775 '{}' \; 32 | RETVAL=$? 33 | if [ $RETVAL -ne 0 ]; then 34 | exit $RETVAL 35 | fi 36 | 37 | find "${application_dir}" -type f ! -perm -g+rw -exec chmod g+rw '{}' \; 38 | RETVAL=$? 39 | if [ $RETVAL -ne 0 ]; then 40 | exit $RETVAL 41 | fi 42 | 43 | if [ ! -e "${application_dir}/composer.phar" ]; then 44 | sudo -u $APACHE_RUN_USER php -r "readfile('https://getcomposer.org/installer');" | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php 45 | RETVAL=$? 46 | if [ $RETVAL -ne 0 ]; then 47 | exit $RETVAL 48 | fi 49 | fi 50 | 51 | if [ -e "${application_dir}/composer.phar" ]; then 52 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php composer.phar self-update 53 | RETVAL=$? 54 | if [ $RETVAL -ne 0 ]; then 55 | exit $RETVAL 56 | fi 57 | 58 | if [ "x$APP_CREATE_PROJECT" = "x" ]; then 59 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php composer.phar install --no-interaction 60 | RETVAL=$? 61 | if [ $RETVAL -ne 0 ]; then 62 | exit $RETVAL 63 | fi 64 | else 65 | if [ "x$APP_CREATE_PROJECT_VERSION" = "x" ]; then 66 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 composer.phar create-project --no-interaction "$APP_CREATE_PROJECT" /tmp/app 67 | else 68 | sudo -u $APACHE_RUN_USER COMPOSER_HOME="${application_dir}/.composer" php -d memory_limit=-1 composer.phar create-project --no-interaction "$APP_CREATE_PROJECT" /tmp/app "$APP_CREATE_PROJECT_VERSION" 69 | fi 70 | RETVAL=$? 71 | if [ $RETVAL -ne 0 ]; then 72 | exit $RETVAL 73 | fi 74 | 75 | $( shopt -s dotglob nullglob && mv /tmp/app/* "${application_dir}" ) 76 | RETVAL=$? 77 | if [ $RETVAL -ne 0 ]; then 78 | exit $RETVAL 79 | fi 80 | 81 | rm -rf /tmp/app 82 | fi 83 | fi 84 | 85 | find "${application_dir}" ! -group $APACHE_RUN_GROUP -exec chgrp $APACHE_RUN_GROUP '{}' \; 86 | RETVAL=$? 87 | if [ $RETVAL -ne 0 ]; then 88 | exit $RETVAL 89 | fi 90 | 91 | find "${application_dir}" -type d ! -perm 2775 -exec chmod 2775 '{}' \; 92 | RETVAL=$? 93 | if [ $RETVAL -ne 0 ]; then 94 | exit $RETVAL 95 | fi 96 | 97 | find "${application_dir}" -type f ! -perm -g+rw -exec chmod g+rw '{}' \; 98 | RETVAL=$? 99 | if [ $RETVAL -ne 0 ]; then 100 | exit $RETVAL 101 | fi 102 | 103 | if [ "x$APP_INIT_SCRIPT" != "x" ]; then 104 | echo "$APP_INIT_SCRIPT" | grep "^\/" 105 | RETVAL=$? 106 | if [ $RETVAL -ne 0 ]; then 107 | APP_INIT_SCRIPT="${application_dir}/${APP_INIT_SCRIPT}" 108 | fi 109 | 110 | if [ -x "$APP_INIT_SCRIPT" ]; then 111 | "$APP_INIT_SCRIPT" 112 | RETVAL=$? 113 | if [ $RETVAL -ne 0 ]; then 114 | exit $RETVAL 115 | fi 116 | fi 117 | fi 118 | -------------------------------------------------------------------------------- /php-app/php72/php7/app.ini: -------------------------------------------------------------------------------- 1 | xdebug.max_nesting_level=200 2 | xdebug.overload_var_dump=Off 3 | xdebug.remote_autostart=Off 4 | xdebug.remote_connect_back=On 5 | xdebug.remote_enable=On 6 | xdebug.remote_port=9000 7 | session.cookie_secure=Off 8 | session.use_cookies=On 9 | session.use_only_cookies=On 10 | short_open_tag=Off 11 | -------------------------------------------------------------------------------- /php-app/php72/php7/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _php_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _php_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "date.timezone=$timezone" >> /etc/php/7.2/apache2/conf.d/90-app.ini 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | echo "date.timezone=$timezone" >> /etc/php/7.2/cli/conf.d/90-app.ini 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | -------------------------------------------------------------------------------- /php-app/php72/supervisor/supervisord.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | 4 | [program:apache2] 5 | command=/usr/local/sbin/apache2 6 | 7 | [program:app-init] 8 | command=/usr/local/sbin/app-init 9 | autorestart=false 10 | startsecs=0 11 | startretries=0 12 | -------------------------------------------------------------------------------- /php-app/php72/system/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | typeset script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | . "$script_dir/php7-timezone.sh" 6 | . "$script_dir/system-locale.sh" 7 | . "$script_dir/system-timezone.sh" 8 | 9 | apt-get update 10 | 11 | if [ "x$LANG" != "x" ]; then 12 | _system_locale_configure "$LANG" 13 | fi 14 | 15 | if [ "x$TZ" != "x" ]; then 16 | _system_timezone_configure "$TZ" 17 | RETVAL=$? 18 | if [ $RETVAL -eq 0 ]; then 19 | _php_timezone_configure "$TZ" 20 | fi 21 | fi 22 | 23 | /usr/bin/supervisord -c /etc/supervisor/supervisord.conf 24 | -------------------------------------------------------------------------------- /php-app/php72/system/locale.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_locale_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_locale_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local lang="$1" 11 | local lang_package_suffix=`echo $lang | grep -o '^[a-z]\+'` 12 | 13 | apt-get install -y "language-pack-${lang_package_suffix}" 14 | RETVAL=$? 15 | if [ $RETVAL -ne 0 ]; then 16 | return $RETVAL 17 | fi 18 | 19 | update-locale LANG="$lang" 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | export LANG="$lang" 26 | export LANGUAGE="$lang" 27 | 28 | return 0 29 | } 30 | -------------------------------------------------------------------------------- /php-app/php72/system/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "$timezone" > /etc/timezone 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | dpkg-reconfigure -f noninteractive tzdata 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | -------------------------------------------------------------------------------- /sphinx-app/1.4/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # sphinx-app 3 | # 4 | 5 | FROM nginx:1.10 6 | MAINTAINER KUBO Atsuhiro 7 | 8 | RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections 9 | RUN apt-get update 10 | RUN apt-get -y upgrade 11 | RUN apt-get install -y locales 12 | RUN apt-get install -y apt-utils 13 | RUN apt-get install -y supervisor 14 | RUN apt-get install -y less vim-tiny 15 | RUN apt-get install -y build-essential 16 | RUN apt-get install -y python-dev 17 | RUN apt-get install -y curl 18 | 19 | # Supervisor 20 | RUN mkdir -p /var/log/supervisor 21 | ADD supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf 22 | 23 | # Nginx 24 | ENV APP_DOCUMENT_ROOT /var/app/_build/html 25 | RUN rm -rf /usr/share/nginx/html 26 | 27 | # Sphinx 28 | RUN curl -fsSLk https://bootstrap.pypa.io/get-pip.py | python 29 | RUN /usr/local/bin/pip install -U sphinx 30 | RUN /usr/local/bin/pip install -U sphinx-intl 31 | 32 | # Sphinx application 33 | ADD app/init /usr/local/sbin/app-init 34 | RUN chmod 755 /usr/local/sbin/app-init 35 | 36 | # System 37 | RUN dpkg-reconfigure -f noninteractive locales 38 | ADD system/init /usr/local/sbin/system-init 39 | RUN chmod 755 /usr/local/sbin/system-init 40 | ADD system/locale.sh /usr/local/sbin/system-locale.sh 41 | ADD system/timezone.sh /usr/local/sbin/system-timezone.sh 42 | 43 | # Others 44 | RUN mkdir /var/app 45 | RUN echo "This file is a placeholder to expose /var/app directory after creating a new container from Kitematic." > /var/app/.placeholder 46 | VOLUME ["/var/app"] 47 | 48 | # Command 49 | CMD ["/usr/local/sbin/system-init"] 50 | -------------------------------------------------------------------------------- /sphinx-app/1.4/app/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | application_dir="/var/app" 6 | 7 | if [ ! -d "$application_dir" ]; then 8 | echo "ERROR: \"$application_dir\" does not exist. Mount your Sphinx project root as \"$application_dir\" on the host." 9 | 10 | exit 1 11 | fi 12 | 13 | find "${application_dir}" -type d ! -perm 2775 -exec chmod 2775 '{}' \; 14 | RETVAL=$? 15 | if [ $RETVAL -ne 0 ]; then 16 | exit $RETVAL 17 | fi 18 | 19 | find "${application_dir}" -type f ! -perm -g+rw -exec chmod g+rw '{}' \; 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | exit $RETVAL 23 | fi 24 | 25 | ln -sf "${APP_DOCUMENT_ROOT}" /usr/share/nginx/html 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | exit $RETVAL 29 | fi 30 | 31 | if [ "x$APP_INIT_SCRIPT" != "x" ]; then 32 | echo "$APP_INIT_SCRIPT" | grep "^\/" 33 | RETVAL=$? 34 | if [ $RETVAL -ne 0 ]; then 35 | APP_INIT_SCRIPT="${application_dir}/${APP_INIT_SCRIPT}" 36 | fi 37 | 38 | if [ -x "$APP_INIT_SCRIPT" ]; then 39 | "$APP_INIT_SCRIPT" 40 | RETVAL=$? 41 | if [ $RETVAL -ne 0 ]; then 42 | exit $RETVAL 43 | fi 44 | fi 45 | fi 46 | -------------------------------------------------------------------------------- /sphinx-app/1.4/supervisor/supervisord.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | 4 | [program:nginx] 5 | command=/usr/sbin/nginx -g "daemon off;" 6 | 7 | [program:app-init] 8 | command=/usr/local/sbin/app-init 9 | autorestart=false 10 | startsecs=0 11 | startretries=0 12 | -------------------------------------------------------------------------------- /sphinx-app/1.4/system/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | typeset script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | . "$script_dir/system-locale.sh" 6 | . "$script_dir/system-timezone.sh" 7 | 8 | if [ "x$LANG" != "x" ]; then 9 | _system_locale_configure "$LANG" 10 | fi 11 | 12 | if [ "x$TZ" != "x" ]; then 13 | _system_timezone_configure "$TZ" 14 | fi 15 | 16 | /usr/bin/supervisord -c /etc/supervisor/supervisord.conf 17 | -------------------------------------------------------------------------------- /sphinx-app/1.4/system/locale.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_locale_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_locale_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local lang="$1" 11 | 12 | grep "$lang" /etc/locale.gen 13 | RETVAL=$? 14 | if [ $RETVAL -ne 0 ]; then 15 | echo "ERROR: \"$lang\" does not exist." 16 | 17 | return $RETVAL 18 | fi 19 | 20 | sed -i "s/# *\($lang\)/\\1/" /etc/locale.gen 21 | RETVAL=$? 22 | if [ $RETVAL -ne 0 ]; then 23 | return $RETVAL 24 | fi 25 | 26 | locale-gen 27 | RETVAL=$? 28 | if [ $RETVAL -ne 0 ]; then 29 | return $RETVAL 30 | fi 31 | 32 | update-locale LANG="$lang" 33 | RETVAL=$? 34 | if [ $RETVAL -ne 0 ]; then 35 | return $RETVAL 36 | fi 37 | 38 | export LANG="$lang" 39 | export LANGUAGE="$lang" 40 | 41 | return 0 42 | } 43 | -------------------------------------------------------------------------------- /sphinx-app/1.4/system/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "$timezone" > /etc/timezone 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | dpkg-reconfigure -f noninteractive tzdata 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | -------------------------------------------------------------------------------- /symfony-app/php53/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # symfony-app 3 | # 4 | 5 | FROM phpmentors/php-app:php53 6 | MAINTAINER KUBO Atsuhiro 7 | 8 | RUN apt-get update 9 | RUN apt-get install -y libfile-slurp-perl php5-sqlite 10 | 11 | # Apache2 12 | ENV APP_DOCUMENT_ROOT /var/app/web 13 | ADD apache2/passenv.patch /tmp/apache2-passenv.patch 14 | RUN patch /etc/apache2/sites-available/default /tmp/apache2-passenv.patch 15 | 16 | # Symfony application 17 | ENV APP_RUN_MODE dev 18 | ADD app/console /usr/local/bin/console 19 | RUN chmod 755 /usr/local/bin/console 20 | RUN chown root.root /usr/local/bin/console 21 | ADD app/make-app-accessible /usr/local/sbin/app-make-app-accessible 22 | RUN chmod 755 /usr/local/sbin/app-make-app-accessible 23 | RUN chown root.root /usr/local/sbin/app-make-app-accessible 24 | ADD app/init /tmp/app-init 25 | RUN cat /usr/local/sbin/app-init /tmp/app-init | sed -e 's/^#!\/bin\/bash//' > /tmp/new-app-init 26 | RUN sed -i '1i #!/bin/bash' /tmp/new-app-init && cp /tmp/new-app-init /usr/local/sbin/app-init && rm /tmp/new-app-init 27 | -------------------------------------------------------------------------------- /symfony-app/php53/apache2/passenv.patch: -------------------------------------------------------------------------------- 1 | --- app.conf.orig 2015-02-16 11:14:27.448623142 +0900 2 | +++ app.conf 2015-02-16 11:14:32.340571211 +0900 3 | @@ -9,4 +9,6 @@ 4 | 5 | CustomLog ${APACHE_LOG_DIR}/access.log combined 6 | ErrorLog ${APACHE_LOG_DIR}/error.log 7 | + 8 | + PassEnv APP_RUN_MODE 9 | 10 | -------------------------------------------------------------------------------- /symfony-app/php53/app/console: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | APACHE_RUN_USER=www-data 3 | application_dir="/var/app" 4 | 5 | if [ -e "$application_dir/bin/console" ]; then 6 | console_script="$application_dir/bin/console" 7 | elif [ -e "$application_dir/app/console" ]; then 8 | console_script="$application_dir/app/console" 9 | else 10 | echo "ERROR: Neither \"bin/console\" nor \"app/console\" does not exist in the application directory \"$application_dir\"." 11 | 12 | exit 1 13 | fi 14 | 15 | cd $application_dir 16 | sudo -u $APACHE_RUN_USER -E "$console_script" "$@" 17 | -------------------------------------------------------------------------------- /symfony-app/php53/app/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | application_dir="/var/app" 6 | parameters_file="${application_dir}/app/config/parameters.yml" 7 | secret=`apg -a 1 -M nl -n 1 -m 40 -E ghijklmnopqrstuvwxyz` 8 | linked_database="0" 9 | 10 | printenv | grep '_TCP_ADDR=.*' 2>&1 > /dev/null 11 | RETVAL=$? 12 | if [ $RETVAL -eq 0 ]; then 13 | printenv | grep '_TCP_PORT=.*' 2>&1 >/dev/null 14 | RETVAL=$? 15 | if [ $RETVAL -eq 0 ]; then 16 | linked_database="1" 17 | fi 18 | fi 19 | 20 | if [ $linked_database = "1" ]; then 21 | database_driver="pdo_mysql" 22 | database_host="$MYSQL_PORT_3306_TCP_ADDR" 23 | database_port="$MYSQL_PORT_3306_TCP_PORT" 24 | database_user="root" 25 | database_password="$MYSQL_ENV_MYSQL_ROOT_PASSWORD" 26 | fi 27 | 28 | if [ $linked_database = "1" ]; then 29 | sed -i "s/^\\( *database_driver:\\).*/\\1 ${database_driver}/" "$parameters_file" 30 | RETVAL=$? 31 | if [ $RETVAL -ne 0 ]; then 32 | exit $RETVAL 33 | fi 34 | 35 | sed -i "s/^\\( *database_host:\\).*/\\1 ${database_host}/" "$parameters_file" 36 | RETVAL=$? 37 | if [ $RETVAL -ne 0 ]; then 38 | exit $RETVAL 39 | fi 40 | 41 | sed -i "s/^\\( *database_port:\\).*/\\1 ${database_port}/" "$parameters_file" 42 | RETVAL=$? 43 | if [ $RETVAL -ne 0 ]; then 44 | exit $RETVAL 45 | fi 46 | 47 | sed -i "s/^\\( *database_user:\\).*/\\1 ${database_user}/" "$parameters_file" 48 | RETVAL=$? 49 | if [ $RETVAL -ne 0 ]; then 50 | exit $RETVAL 51 | fi 52 | 53 | sed -i "s/^\\( *database_password:\\).*/\\1 ${database_password}/" "$parameters_file" 54 | RETVAL=$? 55 | if [ $RETVAL -ne 0 ]; then 56 | exit $RETVAL 57 | fi 58 | fi 59 | 60 | sed -i "s/^\\( *secret:\\).*/\\1 ${secret}/" "$parameters_file" 61 | RETVAL=$? 62 | if [ $RETVAL -ne 0 ]; then 63 | exit $RETVAL 64 | fi 65 | 66 | "$script_dir/app-make-app-accessible" "$application_dir" 67 | RETVAL=$? 68 | if [ $RETVAL -ne 0 ]; then 69 | exit $RETVAL 70 | fi 71 | -------------------------------------------------------------------------------- /symfony-app/php53/app/make-app-accessible: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -w 2 | 3 | use strict; 4 | 5 | use File::Slurp; 6 | 7 | my $application_dir = $ARGV[0]; 8 | my $app_dev = read_file("$application_dir/web/app_dev.php"); 9 | unless ($app_dev) { 10 | exit(1); 11 | } 12 | 13 | unless ($app_dev =~ /if\s*\(\s*\@\$_SERVER\['APP_RUN_MODE'\] != 'dev'/) { 14 | $app_dev =~ s/(if\s*\()(.+?)(\s*\) \{\s*header\('HTTP\/1\.0 403 Forbidden'\);)/$1\@\$_SERVER['APP_RUN_MODE'] != 'dev'\n && ($2)$3/s; 15 | my $result = write_file("$application_dir/web/app_dev.php", $app_dev); 16 | unless ($result) { 17 | exit(1); 18 | } 19 | } 20 | 21 | exit(0); 22 | -------------------------------------------------------------------------------- /symfony-app/php55/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # symfony-app 3 | # 4 | 5 | FROM phpmentors/php-app:php55 6 | MAINTAINER KUBO Atsuhiro 7 | 8 | RUN apt-get update 9 | RUN apt-get install -y libfile-slurp-perl php5-sqlite 10 | 11 | # Apache2 12 | ENV APP_DOCUMENT_ROOT /var/app/web 13 | ADD apache2/passenv.patch /tmp/apache2-passenv.patch 14 | RUN patch /etc/apache2/sites-available/000-default.conf /tmp/apache2-passenv.patch 15 | 16 | # Symfony application 17 | ENV APP_RUN_MODE dev 18 | ADD app/console /usr/local/bin/console 19 | RUN chmod 755 /usr/local/bin/console 20 | RUN chown root.root /usr/local/bin/console 21 | ADD app/make-app-accessible /usr/local/sbin/app-make-app-accessible 22 | RUN chmod 755 /usr/local/sbin/app-make-app-accessible 23 | RUN chown root.root /usr/local/sbin/app-make-app-accessible 24 | ADD app/init /tmp/app-init 25 | RUN cat /usr/local/sbin/app-init /tmp/app-init | sed -e 's/^#!\/bin\/bash//' > /tmp/new-app-init 26 | RUN sed -i '1i #!/bin/bash' /tmp/new-app-init && cp /tmp/new-app-init /usr/local/sbin/app-init && rm /tmp/new-app-init 27 | -------------------------------------------------------------------------------- /symfony-app/php55/apache2/passenv.patch: -------------------------------------------------------------------------------- 1 | --- app.conf.orig 2015-02-16 11:14:27.448623142 +0900 2 | +++ app.conf 2015-02-16 11:14:32.340571211 +0900 3 | @@ -9,4 +9,6 @@ 4 | 5 | CustomLog ${APACHE_LOG_DIR}/access.log combined 6 | ErrorLog ${APACHE_LOG_DIR}/error.log 7 | + 8 | + PassEnv APP_RUN_MODE 9 | 10 | -------------------------------------------------------------------------------- /symfony-app/php55/app/console: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | APACHE_RUN_USER=www-data 3 | application_dir="/var/app" 4 | 5 | if [ -e "$application_dir/bin/console" ]; then 6 | console_script="$application_dir/bin/console" 7 | elif [ -e "$application_dir/app/console" ]; then 8 | console_script="$application_dir/app/console" 9 | else 10 | echo "ERROR: Neither \"bin/console\" nor \"app/console\" does not exist in the application directory \"$application_dir\"." 11 | 12 | exit 1 13 | fi 14 | 15 | cd $application_dir 16 | sudo -u $APACHE_RUN_USER -E "$console_script" "$@" 17 | -------------------------------------------------------------------------------- /symfony-app/php55/app/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | application_dir="/var/app" 6 | parameters_file="${application_dir}/app/config/parameters.yml" 7 | secret=`apg -a 1 -M nl -n 1 -m 40 -E ghijklmnopqrstuvwxyz` 8 | linked_database="0" 9 | 10 | printenv | grep '_TCP_ADDR=.*' 2>&1 > /dev/null 11 | RETVAL=$? 12 | if [ $RETVAL -eq 0 ]; then 13 | printenv | grep '_TCP_PORT=.*' 2>&1 >/dev/null 14 | RETVAL=$? 15 | if [ $RETVAL -eq 0 ]; then 16 | linked_database="1" 17 | fi 18 | fi 19 | 20 | if [ $linked_database = "1" ]; then 21 | database_driver="pdo_mysql" 22 | database_host="$MYSQL_PORT_3306_TCP_ADDR" 23 | database_port="$MYSQL_PORT_3306_TCP_PORT" 24 | database_user="root" 25 | database_password="$MYSQL_ENV_MYSQL_ROOT_PASSWORD" 26 | fi 27 | 28 | if [ $linked_database = "1" ]; then 29 | sed -i "s/^\\( *database_driver:\\).*/\\1 ${database_driver}/" "$parameters_file" 30 | RETVAL=$? 31 | if [ $RETVAL -ne 0 ]; then 32 | exit $RETVAL 33 | fi 34 | 35 | sed -i "s/^\\( *database_host:\\).*/\\1 ${database_host}/" "$parameters_file" 36 | RETVAL=$? 37 | if [ $RETVAL -ne 0 ]; then 38 | exit $RETVAL 39 | fi 40 | 41 | sed -i "s/^\\( *database_port:\\).*/\\1 ${database_port}/" "$parameters_file" 42 | RETVAL=$? 43 | if [ $RETVAL -ne 0 ]; then 44 | exit $RETVAL 45 | fi 46 | 47 | sed -i "s/^\\( *database_user:\\).*/\\1 ${database_user}/" "$parameters_file" 48 | RETVAL=$? 49 | if [ $RETVAL -ne 0 ]; then 50 | exit $RETVAL 51 | fi 52 | 53 | sed -i "s/^\\( *database_password:\\).*/\\1 ${database_password}/" "$parameters_file" 54 | RETVAL=$? 55 | if [ $RETVAL -ne 0 ]; then 56 | exit $RETVAL 57 | fi 58 | fi 59 | 60 | sed -i "s/^\\( *secret:\\).*/\\1 ${secret}/" "$parameters_file" 61 | RETVAL=$? 62 | if [ $RETVAL -ne 0 ]; then 63 | exit $RETVAL 64 | fi 65 | 66 | "$script_dir/app-make-app-accessible" "$application_dir" 67 | RETVAL=$? 68 | if [ $RETVAL -ne 0 ]; then 69 | exit $RETVAL 70 | fi 71 | -------------------------------------------------------------------------------- /symfony-app/php55/app/make-app-accessible: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -w 2 | 3 | use strict; 4 | 5 | use File::Slurp; 6 | 7 | my $application_dir = $ARGV[0]; 8 | my $app_dev = read_file("$application_dir/web/app_dev.php"); 9 | unless ($app_dev) { 10 | exit(1); 11 | } 12 | 13 | unless ($app_dev =~ /if\s*\(\s*\@\$_SERVER\['APP_RUN_MODE'\] != 'dev'/) { 14 | $app_dev =~ s/(if\s*\()(.+?)(\s*\) \{\s*header\('HTTP\/1\.0 403 Forbidden'\);)/$1\@\$_SERVER['APP_RUN_MODE'] != 'dev'\n && ($2)$3/s; 15 | my $result = write_file("$application_dir/web/app_dev.php", $app_dev); 16 | unless ($result) { 17 | exit(1); 18 | } 19 | } 20 | 21 | exit(0); 22 | -------------------------------------------------------------------------------- /symfony-app/php56/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # symfony-app 3 | # 4 | 5 | FROM phpmentors/php-app:php56 6 | MAINTAINER KUBO Atsuhiro 7 | 8 | RUN apt-get update 9 | RUN apt-get install -y libfile-slurp-perl php5-sqlite 10 | 11 | # Apache2 12 | ENV APP_DOCUMENT_ROOT /var/app/web 13 | ADD apache2/passenv.patch /tmp/apache2-passenv.patch 14 | RUN patch /etc/apache2/sites-available/000-default.conf /tmp/apache2-passenv.patch 15 | 16 | # Symfony application 17 | ENV APP_RUN_MODE dev 18 | ADD app/console /usr/local/bin/console 19 | RUN chmod 755 /usr/local/bin/console 20 | RUN chown root.root /usr/local/bin/console 21 | ADD app/make-app-accessible /usr/local/sbin/app-make-app-accessible 22 | RUN chmod 755 /usr/local/sbin/app-make-app-accessible 23 | RUN chown root.root /usr/local/sbin/app-make-app-accessible 24 | ADD app/init /tmp/app-init 25 | RUN cat /usr/local/sbin/app-init /tmp/app-init | sed -e 's/^#!\/bin\/bash//' > /tmp/new-app-init 26 | RUN sed -i '1i #!/bin/bash' /tmp/new-app-init && cp /tmp/new-app-init /usr/local/sbin/app-init && rm /tmp/new-app-init 27 | -------------------------------------------------------------------------------- /symfony-app/php56/apache2/passenv.patch: -------------------------------------------------------------------------------- 1 | --- app.conf.orig 2015-02-16 11:14:27.448623142 +0900 2 | +++ app.conf 2015-02-16 11:14:32.340571211 +0900 3 | @@ -9,4 +9,6 @@ 4 | 5 | CustomLog ${APACHE_LOG_DIR}/access.log combined 6 | ErrorLog ${APACHE_LOG_DIR}/error.log 7 | + 8 | + PassEnv APP_RUN_MODE 9 | 10 | -------------------------------------------------------------------------------- /symfony-app/php56/app/console: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | APACHE_RUN_USER=www-data 3 | application_dir="/var/app" 4 | 5 | if [ -e "$application_dir/bin/console" ]; then 6 | console_script="$application_dir/bin/console" 7 | elif [ -e "$application_dir/app/console" ]; then 8 | console_script="$application_dir/app/console" 9 | else 10 | echo "ERROR: Neither \"bin/console\" nor \"app/console\" does not exist in the application directory \"$application_dir\"." 11 | 12 | exit 1 13 | fi 14 | 15 | cd $application_dir 16 | sudo -u $APACHE_RUN_USER -E "$console_script" "$@" 17 | -------------------------------------------------------------------------------- /symfony-app/php56/app/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | application_dir="/var/app" 6 | parameters_file="${application_dir}/app/config/parameters.yml" 7 | secret=`apg -a 1 -M nl -n 1 -m 40 -E ghijklmnopqrstuvwxyz` 8 | linked_database="0" 9 | 10 | printenv | grep '_TCP_ADDR=.*' 2>&1 > /dev/null 11 | RETVAL=$? 12 | if [ $RETVAL -eq 0 ]; then 13 | printenv | grep '_TCP_PORT=.*' 2>&1 >/dev/null 14 | RETVAL=$? 15 | if [ $RETVAL -eq 0 ]; then 16 | linked_database="1" 17 | fi 18 | fi 19 | 20 | if [ $linked_database = "1" ]; then 21 | database_driver="pdo_mysql" 22 | database_host="$MYSQL_PORT_3306_TCP_ADDR" 23 | database_port="$MYSQL_PORT_3306_TCP_PORT" 24 | database_user="root" 25 | database_password="$MYSQL_ENV_MYSQL_ROOT_PASSWORD" 26 | fi 27 | 28 | if [ $linked_database = "1" ]; then 29 | sed -i "s/^\\( *database_driver:\\).*/\\1 ${database_driver}/" "$parameters_file" 30 | RETVAL=$? 31 | if [ $RETVAL -ne 0 ]; then 32 | exit $RETVAL 33 | fi 34 | 35 | sed -i "s/^\\( *database_host:\\).*/\\1 ${database_host}/" "$parameters_file" 36 | RETVAL=$? 37 | if [ $RETVAL -ne 0 ]; then 38 | exit $RETVAL 39 | fi 40 | 41 | sed -i "s/^\\( *database_port:\\).*/\\1 ${database_port}/" "$parameters_file" 42 | RETVAL=$? 43 | if [ $RETVAL -ne 0 ]; then 44 | exit $RETVAL 45 | fi 46 | 47 | sed -i "s/^\\( *database_user:\\).*/\\1 ${database_user}/" "$parameters_file" 48 | RETVAL=$? 49 | if [ $RETVAL -ne 0 ]; then 50 | exit $RETVAL 51 | fi 52 | 53 | sed -i "s/^\\( *database_password:\\).*/\\1 ${database_password}/" "$parameters_file" 54 | RETVAL=$? 55 | if [ $RETVAL -ne 0 ]; then 56 | exit $RETVAL 57 | fi 58 | fi 59 | 60 | sed -i "s/^\\( *secret:\\).*/\\1 ${secret}/" "$parameters_file" 61 | RETVAL=$? 62 | if [ $RETVAL -ne 0 ]; then 63 | exit $RETVAL 64 | fi 65 | 66 | "$script_dir/app-make-app-accessible" "$application_dir" 67 | RETVAL=$? 68 | if [ $RETVAL -ne 0 ]; then 69 | exit $RETVAL 70 | fi 71 | -------------------------------------------------------------------------------- /symfony-app/php56/app/make-app-accessible: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -w 2 | 3 | use strict; 4 | 5 | use File::Slurp; 6 | 7 | my $application_dir = $ARGV[0]; 8 | my $app_dev = read_file("$application_dir/web/app_dev.php"); 9 | unless ($app_dev) { 10 | exit(1); 11 | } 12 | 13 | unless ($app_dev =~ /if\s*\(\s*\@\$_SERVER\['APP_RUN_MODE'\] != 'dev'/) { 14 | $app_dev =~ s/(if\s*\()(.+?)(\s*\) \{\s*header\('HTTP\/1\.0 403 Forbidden'\);)/$1\@\$_SERVER['APP_RUN_MODE'] != 'dev'\n && ($2)$3/s; 15 | my $result = write_file("$application_dir/web/app_dev.php", $app_dev); 16 | unless ($result) { 17 | exit(1); 18 | } 19 | } 20 | 21 | exit(0); 22 | -------------------------------------------------------------------------------- /symfony-app/php70/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # symfony-app 3 | # 4 | 5 | FROM phpmentors/php-app:php70 6 | MAINTAINER KUBO Atsuhiro 7 | 8 | RUN apt-get update 9 | RUN apt-get install -y libfile-slurp-perl php7.0-sqlite3 10 | 11 | # Apache2 12 | ENV APP_DOCUMENT_ROOT /var/app/web 13 | ADD apache2/passenv.patch /tmp/apache2-passenv.patch 14 | RUN patch /etc/apache2/sites-available/000-default.conf /tmp/apache2-passenv.patch 15 | 16 | # Symfony application 17 | ENV APP_RUN_MODE dev 18 | ADD app/console /usr/local/bin/console 19 | RUN chmod 755 /usr/local/bin/console 20 | RUN chown root.root /usr/local/bin/console 21 | ADD app/make-app-accessible /usr/local/sbin/app-make-app-accessible 22 | RUN chmod 755 /usr/local/sbin/app-make-app-accessible 23 | RUN chown root.root /usr/local/sbin/app-make-app-accessible 24 | ADD app/init /tmp/app-init 25 | RUN cat /usr/local/sbin/app-init /tmp/app-init | sed -e 's/^#!\/bin\/bash//' > /tmp/new-app-init 26 | RUN sed -i '1i #!/bin/bash' /tmp/new-app-init && cp /tmp/new-app-init /usr/local/sbin/app-init && rm /tmp/new-app-init 27 | -------------------------------------------------------------------------------- /symfony-app/php70/apache2/passenv.patch: -------------------------------------------------------------------------------- 1 | --- app.conf.orig 2015-02-16 11:14:27.448623142 +0900 2 | +++ app.conf 2015-02-16 11:14:32.340571211 +0900 3 | @@ -9,4 +9,6 @@ 4 | 5 | CustomLog ${APACHE_LOG_DIR}/access.log combined 6 | ErrorLog ${APACHE_LOG_DIR}/error.log 7 | + 8 | + PassEnv APP_RUN_MODE 9 | 10 | -------------------------------------------------------------------------------- /symfony-app/php70/app/console: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | APACHE_RUN_USER=www-data 3 | application_dir="/var/app" 4 | 5 | if [ -e "$application_dir/bin/console" ]; then 6 | console_script="$application_dir/bin/console" 7 | elif [ -e "$application_dir/app/console" ]; then 8 | console_script="$application_dir/app/console" 9 | else 10 | echo "ERROR: Neither \"bin/console\" nor \"app/console\" does not exist in the application directory \"$application_dir\"." 11 | 12 | exit 1 13 | fi 14 | 15 | cd $application_dir 16 | sudo -u $APACHE_RUN_USER -E "$console_script" "$@" 17 | -------------------------------------------------------------------------------- /symfony-app/php70/app/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | application_dir="/var/app" 6 | parameters_file="${application_dir}/app/config/parameters.yml" 7 | secret=`apg -a 1 -M nl -n 1 -m 40 -E ghijklmnopqrstuvwxyz` 8 | linked_database="0" 9 | 10 | printenv | grep '_TCP_ADDR=.*' 2>&1 > /dev/null 11 | RETVAL=$? 12 | if [ $RETVAL -eq 0 ]; then 13 | printenv | grep '_TCP_PORT=.*' 2>&1 >/dev/null 14 | RETVAL=$? 15 | if [ $RETVAL -eq 0 ]; then 16 | linked_database="1" 17 | fi 18 | fi 19 | 20 | if [ $linked_database = "1" ]; then 21 | database_driver="pdo_mysql" 22 | database_host="$MYSQL_PORT_3306_TCP_ADDR" 23 | database_port="$MYSQL_PORT_3306_TCP_PORT" 24 | database_user="root" 25 | database_password="$MYSQL_ENV_MYSQL_ROOT_PASSWORD" 26 | fi 27 | 28 | if [ $linked_database = "1" ]; then 29 | sed -i "s/^\\( *database_driver:\\).*/\\1 ${database_driver}/" "$parameters_file" 30 | RETVAL=$? 31 | if [ $RETVAL -ne 0 ]; then 32 | exit $RETVAL 33 | fi 34 | 35 | sed -i "s/^\\( *database_host:\\).*/\\1 ${database_host}/" "$parameters_file" 36 | RETVAL=$? 37 | if [ $RETVAL -ne 0 ]; then 38 | exit $RETVAL 39 | fi 40 | 41 | sed -i "s/^\\( *database_port:\\).*/\\1 ${database_port}/" "$parameters_file" 42 | RETVAL=$? 43 | if [ $RETVAL -ne 0 ]; then 44 | exit $RETVAL 45 | fi 46 | 47 | sed -i "s/^\\( *database_user:\\).*/\\1 ${database_user}/" "$parameters_file" 48 | RETVAL=$? 49 | if [ $RETVAL -ne 0 ]; then 50 | exit $RETVAL 51 | fi 52 | 53 | sed -i "s/^\\( *database_password:\\).*/\\1 ${database_password}/" "$parameters_file" 54 | RETVAL=$? 55 | if [ $RETVAL -ne 0 ]; then 56 | exit $RETVAL 57 | fi 58 | fi 59 | 60 | sed -i "s/^\\( *secret:\\).*/\\1 ${secret}/" "$parameters_file" 61 | RETVAL=$? 62 | if [ $RETVAL -ne 0 ]; then 63 | exit $RETVAL 64 | fi 65 | 66 | "$script_dir/app-make-app-accessible" "$application_dir" 67 | RETVAL=$? 68 | if [ $RETVAL -ne 0 ]; then 69 | exit $RETVAL 70 | fi 71 | -------------------------------------------------------------------------------- /symfony-app/php70/app/make-app-accessible: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -w 2 | 3 | use strict; 4 | 5 | use File::Slurp; 6 | 7 | my $application_dir = $ARGV[0]; 8 | my $app_dev = read_file("$application_dir/web/app_dev.php"); 9 | unless ($app_dev) { 10 | exit(1); 11 | } 12 | 13 | unless ($app_dev =~ /if\s*\(\s*\@\$_SERVER\['APP_RUN_MODE'\] != 'dev'/) { 14 | $app_dev =~ s/(if\s*\()(.+?)(\s*\) \{\s*header\('HTTP\/1\.0 403 Forbidden'\);)/$1\@\$_SERVER['APP_RUN_MODE'] != 'dev'\n && ($2)$3/s; 15 | my $result = write_file("$application_dir/web/app_dev.php", $app_dev); 16 | unless ($result) { 17 | exit(1); 18 | } 19 | } 20 | 21 | exit(0); 22 | -------------------------------------------------------------------------------- /symfony-app/php71/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # symfony-app 3 | # 4 | 5 | FROM phpmentors/php-app:php71 6 | MAINTAINER Atsuhiro Kubo 7 | 8 | RUN apt-get update 9 | RUN apt-get install -y libfile-slurp-perl php7.1-sqlite3 10 | 11 | # Apache2 12 | ENV APP_DOCUMENT_ROOT /var/app/web 13 | ADD apache2/passenv.patch /tmp/apache2-passenv.patch 14 | RUN patch /etc/apache2/sites-available/000-default.conf /tmp/apache2-passenv.patch 15 | 16 | # Symfony application 17 | ENV APP_RUN_MODE dev 18 | ADD app/console /usr/local/bin/console 19 | RUN chmod 755 /usr/local/bin/console 20 | RUN chown root.root /usr/local/bin/console 21 | ADD app/make-app-accessible /usr/local/sbin/app-make-app-accessible 22 | RUN chmod 755 /usr/local/sbin/app-make-app-accessible 23 | RUN chown root.root /usr/local/sbin/app-make-app-accessible 24 | ADD app/init /tmp/app-init 25 | RUN cat /usr/local/sbin/app-init /tmp/app-init | sed -e 's/^#!\/bin\/bash//' > /tmp/new-app-init 26 | RUN sed -i '1i #!/bin/bash' /tmp/new-app-init && cp /tmp/new-app-init /usr/local/sbin/app-init && rm /tmp/new-app-init 27 | -------------------------------------------------------------------------------- /symfony-app/php71/apache2/passenv.patch: -------------------------------------------------------------------------------- 1 | --- app.conf.orig 2015-02-16 11:14:27.448623142 +0900 2 | +++ app.conf 2015-02-16 11:14:32.340571211 +0900 3 | @@ -9,4 +9,6 @@ 4 | 5 | CustomLog ${APACHE_LOG_DIR}/access.log combined 6 | ErrorLog ${APACHE_LOG_DIR}/error.log 7 | + 8 | + PassEnv APP_RUN_MODE 9 | 10 | -------------------------------------------------------------------------------- /symfony-app/php71/app/console: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | APACHE_RUN_USER=www-data 3 | application_dir="/var/app" 4 | 5 | if [ -e "$application_dir/bin/console" ]; then 6 | console_script="$application_dir/bin/console" 7 | elif [ -e "$application_dir/app/console" ]; then 8 | console_script="$application_dir/app/console" 9 | else 10 | echo "ERROR: Neither \"bin/console\" nor \"app/console\" does not exist in the application directory \"$application_dir\"." 11 | 12 | exit 1 13 | fi 14 | 15 | cd $application_dir 16 | sudo -u $APACHE_RUN_USER -E "$console_script" "$@" 17 | -------------------------------------------------------------------------------- /symfony-app/php71/app/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | application_dir="/var/app" 6 | parameters_file="${application_dir}/app/config/parameters.yml" 7 | secret=`apg -a 1 -M nl -n 1 -m 40 -E ghijklmnopqrstuvwxyz` 8 | linked_database="0" 9 | 10 | printenv | grep '_TCP_ADDR=.*' 2>&1 > /dev/null 11 | RETVAL=$? 12 | if [ $RETVAL -eq 0 ]; then 13 | printenv | grep '_TCP_PORT=.*' 2>&1 >/dev/null 14 | RETVAL=$? 15 | if [ $RETVAL -eq 0 ]; then 16 | linked_database="1" 17 | fi 18 | fi 19 | 20 | if [ $linked_database = "1" ]; then 21 | database_driver="pdo_mysql" 22 | database_host="$MYSQL_PORT_3306_TCP_ADDR" 23 | database_port="$MYSQL_PORT_3306_TCP_PORT" 24 | database_user="root" 25 | database_password="$MYSQL_ENV_MYSQL_ROOT_PASSWORD" 26 | fi 27 | 28 | if [ $linked_database = "1" ]; then 29 | sed -i "s/^\\( *database_driver:\\).*/\\1 ${database_driver}/" "$parameters_file" 30 | RETVAL=$? 31 | if [ $RETVAL -ne 0 ]; then 32 | exit $RETVAL 33 | fi 34 | 35 | sed -i "s/^\\( *database_host:\\).*/\\1 ${database_host}/" "$parameters_file" 36 | RETVAL=$? 37 | if [ $RETVAL -ne 0 ]; then 38 | exit $RETVAL 39 | fi 40 | 41 | sed -i "s/^\\( *database_port:\\).*/\\1 ${database_port}/" "$parameters_file" 42 | RETVAL=$? 43 | if [ $RETVAL -ne 0 ]; then 44 | exit $RETVAL 45 | fi 46 | 47 | sed -i "s/^\\( *database_user:\\).*/\\1 ${database_user}/" "$parameters_file" 48 | RETVAL=$? 49 | if [ $RETVAL -ne 0 ]; then 50 | exit $RETVAL 51 | fi 52 | 53 | sed -i "s/^\\( *database_password:\\).*/\\1 ${database_password}/" "$parameters_file" 54 | RETVAL=$? 55 | if [ $RETVAL -ne 0 ]; then 56 | exit $RETVAL 57 | fi 58 | fi 59 | 60 | sed -i "s/^\\( *secret:\\).*/\\1 ${secret}/" "$parameters_file" 61 | RETVAL=$? 62 | if [ $RETVAL -ne 0 ]; then 63 | exit $RETVAL 64 | fi 65 | 66 | "$script_dir/app-make-app-accessible" "$application_dir" 67 | RETVAL=$? 68 | if [ $RETVAL -ne 0 ]; then 69 | exit $RETVAL 70 | fi 71 | -------------------------------------------------------------------------------- /symfony-app/php71/app/make-app-accessible: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -w 2 | 3 | use strict; 4 | 5 | use File::Slurp; 6 | 7 | my $application_dir = $ARGV[0]; 8 | my $app_dev = read_file("$application_dir/web/app_dev.php"); 9 | unless ($app_dev) { 10 | exit(1); 11 | } 12 | 13 | unless ($app_dev =~ /if\s*\(\s*\@\$_SERVER\['APP_RUN_MODE'\] != 'dev'/) { 14 | $app_dev =~ s/(if\s*\()(.+?)(\s*\) \{\s*header\('HTTP\/1\.0 403 Forbidden'\);)/$1\@\$_SERVER['APP_RUN_MODE'] != 'dev'\n && ($2)$3/s; 15 | my $result = write_file("$application_dir/web/app_dev.php", $app_dev); 16 | unless ($result) { 17 | exit(1); 18 | } 19 | } 20 | 21 | exit(0); 22 | -------------------------------------------------------------------------------- /symfony-app/php72/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # symfony-app 3 | # 4 | 5 | FROM phpmentors/php-app:php72 6 | MAINTAINER Atsuhiro Kubo 7 | 8 | RUN apt-get update 9 | RUN apt-get install -y libfile-slurp-perl php7.2-sqlite3 10 | 11 | # Apache2 12 | ENV APP_DOCUMENT_ROOT /var/app/web 13 | ADD apache2/passenv.patch /tmp/apache2-passenv.patch 14 | RUN patch /etc/apache2/sites-available/000-default.conf /tmp/apache2-passenv.patch 15 | 16 | # Symfony application 17 | ENV APP_RUN_MODE dev 18 | ADD app/console /usr/local/bin/console 19 | RUN chmod 755 /usr/local/bin/console 20 | RUN chown root.root /usr/local/bin/console 21 | ADD app/make-app-accessible /usr/local/sbin/app-make-app-accessible 22 | RUN chmod 755 /usr/local/sbin/app-make-app-accessible 23 | RUN chown root.root /usr/local/sbin/app-make-app-accessible 24 | ADD app/init /tmp/app-init 25 | RUN cat /usr/local/sbin/app-init /tmp/app-init | sed -e 's/^#!\/bin\/bash//' > /tmp/new-app-init 26 | RUN sed -i '1i #!/bin/bash' /tmp/new-app-init && cp /tmp/new-app-init /usr/local/sbin/app-init && rm /tmp/new-app-init 27 | -------------------------------------------------------------------------------- /symfony-app/php72/apache2/passenv.patch: -------------------------------------------------------------------------------- 1 | --- app.conf.orig 2015-02-16 11:14:27.448623142 +0900 2 | +++ app.conf 2015-02-16 11:14:32.340571211 +0900 3 | @@ -9,4 +9,6 @@ 4 | 5 | CustomLog ${APACHE_LOG_DIR}/access.log combined 6 | ErrorLog ${APACHE_LOG_DIR}/error.log 7 | + 8 | + PassEnv APP_RUN_MODE 9 | 10 | -------------------------------------------------------------------------------- /symfony-app/php72/app/console: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | APACHE_RUN_USER=www-data 3 | application_dir="/var/app" 4 | 5 | if [ -e "$application_dir/bin/console" ]; then 6 | console_script="$application_dir/bin/console" 7 | elif [ -e "$application_dir/app/console" ]; then 8 | console_script="$application_dir/app/console" 9 | else 10 | echo "ERROR: Neither \"bin/console\" nor \"app/console\" does not exist in the application directory \"$application_dir\"." 11 | 12 | exit 1 13 | fi 14 | 15 | cd $application_dir 16 | sudo -u $APACHE_RUN_USER -E "$console_script" "$@" 17 | -------------------------------------------------------------------------------- /symfony-app/php72/app/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | application_dir="/var/app" 6 | parameters_file="${application_dir}/app/config/parameters.yml" 7 | secret=`apg -a 1 -M nl -n 1 -m 40 -E ghijklmnopqrstuvwxyz` 8 | linked_database="0" 9 | 10 | printenv | grep '_TCP_ADDR=.*' 2>&1 > /dev/null 11 | RETVAL=$? 12 | if [ $RETVAL -eq 0 ]; then 13 | printenv | grep '_TCP_PORT=.*' 2>&1 >/dev/null 14 | RETVAL=$? 15 | if [ $RETVAL -eq 0 ]; then 16 | linked_database="1" 17 | fi 18 | fi 19 | 20 | if [ $linked_database = "1" ]; then 21 | database_driver="pdo_mysql" 22 | database_host="$MYSQL_PORT_3306_TCP_ADDR" 23 | database_port="$MYSQL_PORT_3306_TCP_PORT" 24 | database_user="root" 25 | database_password="$MYSQL_ENV_MYSQL_ROOT_PASSWORD" 26 | fi 27 | 28 | if [ $linked_database = "1" ]; then 29 | sed -i "s/^\\( *database_driver:\\).*/\\1 ${database_driver}/" "$parameters_file" 30 | RETVAL=$? 31 | if [ $RETVAL -ne 0 ]; then 32 | exit $RETVAL 33 | fi 34 | 35 | sed -i "s/^\\( *database_host:\\).*/\\1 ${database_host}/" "$parameters_file" 36 | RETVAL=$? 37 | if [ $RETVAL -ne 0 ]; then 38 | exit $RETVAL 39 | fi 40 | 41 | sed -i "s/^\\( *database_port:\\).*/\\1 ${database_port}/" "$parameters_file" 42 | RETVAL=$? 43 | if [ $RETVAL -ne 0 ]; then 44 | exit $RETVAL 45 | fi 46 | 47 | sed -i "s/^\\( *database_user:\\).*/\\1 ${database_user}/" "$parameters_file" 48 | RETVAL=$? 49 | if [ $RETVAL -ne 0 ]; then 50 | exit $RETVAL 51 | fi 52 | 53 | sed -i "s/^\\( *database_password:\\).*/\\1 ${database_password}/" "$parameters_file" 54 | RETVAL=$? 55 | if [ $RETVAL -ne 0 ]; then 56 | exit $RETVAL 57 | fi 58 | fi 59 | 60 | sed -i "s/^\\( *secret:\\).*/\\1 ${secret}/" "$parameters_file" 61 | RETVAL=$? 62 | if [ $RETVAL -ne 0 ]; then 63 | exit $RETVAL 64 | fi 65 | 66 | "$script_dir/app-make-app-accessible" "$application_dir" 67 | RETVAL=$? 68 | if [ $RETVAL -ne 0 ]; then 69 | exit $RETVAL 70 | fi 71 | -------------------------------------------------------------------------------- /symfony-app/php72/app/make-app-accessible: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -w 2 | 3 | use strict; 4 | 5 | use File::Slurp; 6 | 7 | my $application_dir = $ARGV[0]; 8 | my $app_dev = read_file("$application_dir/web/app_dev.php"); 9 | unless ($app_dev) { 10 | exit(1); 11 | } 12 | 13 | unless ($app_dev =~ /if\s*\(\s*\@\$_SERVER\['APP_RUN_MODE'\] != 'dev'/) { 14 | $app_dev =~ s/(if\s*\()(.+?)(\s*\) \{\s*header\('HTTP\/1\.0 403 Forbidden'\);)/$1\@\$_SERVER['APP_RUN_MODE'] != 'dev'\n && ($2)$3/s; 15 | my $result = write_file("$application_dir/web/app_dev.php", $app_dev); 16 | unless ($result) { 17 | exit(1); 18 | } 19 | } 20 | 21 | exit(0); 22 | -------------------------------------------------------------------------------- /tomcat-app/7.0-jre8/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # tomcat-app 3 | # 4 | 5 | FROM tomcat:7.0-jre8 6 | MAINTAINER KUBO Atsuhiro 7 | 8 | RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections 9 | RUN apt-get update 10 | RUN apt-get -y upgrade 11 | RUN apt-get install -y locales 12 | RUN apt-get install -y apt-utils 13 | RUN apt-get install -y supervisor 14 | RUN apt-get install -y git 15 | RUN apt-get install -y less vim-tiny 16 | RUN apt-get install -y sudo 17 | RUN apt-get install -y openjdk-8-jdk 18 | 19 | # Supervisor 20 | RUN mkdir -p /var/log/supervisor 21 | ADD supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf 22 | 23 | # Maven 24 | ENV MAVEN_VERSION 3.3.9 25 | ENV MAVEN_HOME /usr/share/maven 26 | RUN curl -fsSLk https://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz | tar xzf - -C /usr/share && mv /usr/share/apache-maven-$MAVEN_VERSION $MAVEN_HOME 27 | 28 | # Tomcat 29 | RUN sed -i "s/\(\)/\\1\\n \\n \\n /" /usr/local/tomcat/conf/tomcat-users.xml 30 | 31 | # Tomcat application 32 | ADD app/init /usr/local/sbin/app-init 33 | RUN chmod 755 /usr/local/sbin/app-init 34 | ADD app/mvn /usr/local/bin/mvn 35 | RUN chmod 755 /usr/local/bin/mvn 36 | ADD app/tomcat-jpda /usr/local/sbin/tomcat-jpda 37 | RUN chmod 755 /usr/local/sbin/tomcat-jpda 38 | 39 | # System 40 | RUN dpkg-reconfigure -f noninteractive locales 41 | ADD system/init /usr/local/sbin/system-init 42 | RUN chmod 755 /usr/local/sbin/system-init 43 | ADD system/locale.sh /usr/local/sbin/system-locale.sh 44 | ADD system/timezone.sh /usr/local/sbin/system-timezone.sh 45 | 46 | # Others 47 | RUN mkdir -p /var/app 48 | RUN echo "This file is a placeholder to expose /var/app directory after creating a new container from Kitematic." > /var/app/.placeholder 49 | VOLUME ["/var/app"] 50 | 51 | # Command 52 | CMD ["/usr/local/sbin/system-init"] 53 | -------------------------------------------------------------------------------- /tomcat-app/7.0-jre8/app/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | application_dir="/var/app" 6 | 7 | if [ ! -d "$application_dir" ]; then 8 | echo "ERROR: \"$application_dir\" does not exist. Mount your Maven project root as \"$application_dir\" on the host." 9 | 10 | exit 1 11 | fi 12 | 13 | find "${application_dir}" -type d ! -perm 2775 -exec chmod 2775 '{}' \; 14 | RETVAL=$? 15 | if [ $RETVAL -ne 0 ]; then 16 | exit $RETVAL 17 | fi 18 | 19 | find "${application_dir}" -type f ! -perm -g+rw -exec chmod g+rw '{}' \; 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | exit $RETVAL 23 | fi 24 | 25 | if [ "x$APP_INIT_SCRIPT" != "x" ]; then 26 | echo "$APP_INIT_SCRIPT" | grep "^\/" 27 | RETVAL=$? 28 | if [ $RETVAL -ne 0 ]; then 29 | APP_INIT_SCRIPT="${application_dir}/${APP_INIT_SCRIPT}" 30 | fi 31 | 32 | if [ -x "$APP_INIT_SCRIPT" ]; then 33 | "$APP_INIT_SCRIPT" 34 | RETVAL=$? 35 | if [ $RETVAL -ne 0 ]; then 36 | exit $RETVAL 37 | fi 38 | fi 39 | fi 40 | -------------------------------------------------------------------------------- /tomcat-app/7.0-jre8/app/mvn: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | umask 0002 3 | 4 | MAVEN_HOME="/usr/share/maven" 5 | application_dir="/var/app" 6 | 7 | cd $application_dir 8 | "${MAVEN_HOME}/bin/mvn" "$@" 9 | -------------------------------------------------------------------------------- /tomcat-app/7.0-jre8/app/tomcat-jpda: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ "x$CATALINA_OPTS" = "x" ]; then 4 | CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n" /usr/local/tomcat/bin/catalina.sh run 5 | else 6 | CATALINA_OPTS="$CATALINA_OPTS -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n" /usr/local/tomcat/bin/catalina.sh run 7 | fi 8 | -------------------------------------------------------------------------------- /tomcat-app/7.0-jre8/supervisor/supervisord.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | 4 | [program:tomcat] 5 | command=/usr/local/tomcat/bin/catalina.sh run 6 | 7 | [program:tomcat-jpda] 8 | command=/usr/local/sbin/tomcat-jpda 9 | autostart=false 10 | stopasgroup=true 11 | 12 | [program:app-init] 13 | command=/usr/local/sbin/app-init 14 | autorestart=false 15 | startsecs=0 16 | startretries=0 17 | -------------------------------------------------------------------------------- /tomcat-app/7.0-jre8/system/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | typeset script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | . "$script_dir/system-locale.sh" 6 | . "$script_dir/system-timezone.sh" 7 | 8 | if [ "x$LANG" != "x" ]; then 9 | _system_locale_configure "$LANG" 10 | fi 11 | 12 | if [ "x$TZ" != "x" ]; then 13 | _system_timezone_configure "$TZ" 14 | fi 15 | 16 | /usr/bin/supervisord -c /etc/supervisor/supervisord.conf 17 | -------------------------------------------------------------------------------- /tomcat-app/7.0-jre8/system/locale.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_locale_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_locale_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local lang="$1" 11 | 12 | grep "$lang" /etc/locale.gen 13 | RETVAL=$? 14 | if [ $RETVAL -ne 0 ]; then 15 | echo "ERROR: \"$lang\" does not exist." 16 | 17 | return $RETVAL 18 | fi 19 | 20 | sed -i "s/# *\($lang\)/\\1/" /etc/locale.gen 21 | RETVAL=$? 22 | if [ $RETVAL -ne 0 ]; then 23 | return $RETVAL 24 | fi 25 | 26 | locale-gen 27 | RETVAL=$? 28 | if [ $RETVAL -ne 0 ]; then 29 | return $RETVAL 30 | fi 31 | 32 | update-locale LANG="$lang" 33 | RETVAL=$? 34 | if [ $RETVAL -ne 0 ]; then 35 | return $RETVAL 36 | fi 37 | 38 | export LANG="$lang" 39 | export LANGUAGE="$lang" 40 | 41 | return 0 42 | } 43 | -------------------------------------------------------------------------------- /tomcat-app/7.0-jre8/system/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "$timezone" > /etc/timezone 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | dpkg-reconfigure -f noninteractive tzdata 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | -------------------------------------------------------------------------------- /tomcat-app/7.0/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # tomcat-app 3 | # 4 | 5 | FROM tomcat:7.0 6 | MAINTAINER KUBO Atsuhiro 7 | 8 | RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections 9 | RUN apt-get update 10 | RUN apt-get -y upgrade 11 | RUN apt-get install -y locales 12 | RUN apt-get install -y apt-utils 13 | RUN apt-get install -y supervisor 14 | RUN apt-get install -y git 15 | RUN apt-get install -y less vim-tiny 16 | RUN apt-get install -y sudo 17 | RUN apt-get install -y openjdk-7-jdk 18 | 19 | # Supervisor 20 | RUN mkdir -p /var/log/supervisor 21 | ADD supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf 22 | 23 | # Maven 24 | ENV MAVEN_VERSION 3.3.9 25 | ENV MAVEN_HOME /usr/share/maven 26 | RUN curl -fsSLk https://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz | tar xzf - -C /usr/share && mv /usr/share/apache-maven-$MAVEN_VERSION $MAVEN_HOME 27 | 28 | # Tomcat 29 | RUN sed -i "s/\(\)/\\1\\n \\n \\n /" /usr/local/tomcat/conf/tomcat-users.xml 30 | 31 | # Tomcat application 32 | ADD app/init /usr/local/sbin/app-init 33 | RUN chmod 755 /usr/local/sbin/app-init 34 | ADD app/mvn /usr/local/bin/mvn 35 | RUN chmod 755 /usr/local/bin/mvn 36 | ADD app/tomcat-jpda /usr/local/sbin/tomcat-jpda 37 | RUN chmod 755 /usr/local/sbin/tomcat-jpda 38 | 39 | # System 40 | RUN dpkg-reconfigure -f noninteractive locales 41 | ADD system/init /usr/local/sbin/system-init 42 | RUN chmod 755 /usr/local/sbin/system-init 43 | ADD system/locale.sh /usr/local/sbin/system-locale.sh 44 | ADD system/timezone.sh /usr/local/sbin/system-timezone.sh 45 | 46 | # Others 47 | RUN mkdir -p /var/app 48 | RUN echo "This file is a placeholder to expose /var/app directory after creating a new container from Kitematic." > /var/app/.placeholder 49 | VOLUME ["/var/app"] 50 | 51 | # Command 52 | CMD ["/usr/local/sbin/system-init"] 53 | -------------------------------------------------------------------------------- /tomcat-app/7.0/app/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | application_dir="/var/app" 6 | 7 | if [ ! -d "$application_dir" ]; then 8 | echo "ERROR: \"$application_dir\" does not exist. Mount your Maven project root as \"$application_dir\" on the host." 9 | 10 | exit 1 11 | fi 12 | 13 | find "${application_dir}" -type d ! -perm 2775 -exec chmod 2775 '{}' \; 14 | RETVAL=$? 15 | if [ $RETVAL -ne 0 ]; then 16 | exit $RETVAL 17 | fi 18 | 19 | find "${application_dir}" -type f ! -perm -g+rw -exec chmod g+rw '{}' \; 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | exit $RETVAL 23 | fi 24 | 25 | if [ "x$APP_INIT_SCRIPT" != "x" ]; then 26 | echo "$APP_INIT_SCRIPT" | grep "^\/" 27 | RETVAL=$? 28 | if [ $RETVAL -ne 0 ]; then 29 | APP_INIT_SCRIPT="${application_dir}/${APP_INIT_SCRIPT}" 30 | fi 31 | 32 | if [ -x "$APP_INIT_SCRIPT" ]; then 33 | "$APP_INIT_SCRIPT" 34 | RETVAL=$? 35 | if [ $RETVAL -ne 0 ]; then 36 | exit $RETVAL 37 | fi 38 | fi 39 | fi 40 | -------------------------------------------------------------------------------- /tomcat-app/7.0/app/mvn: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | umask 0002 3 | 4 | MAVEN_HOME="/usr/share/maven" 5 | application_dir="/var/app" 6 | 7 | cd $application_dir 8 | "${MAVEN_HOME}/bin/mvn" "$@" 9 | -------------------------------------------------------------------------------- /tomcat-app/7.0/app/tomcat-jpda: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ "x$CATALINA_OPTS" = "x" ]; then 4 | CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n" /usr/local/tomcat/bin/catalina.sh run 5 | else 6 | CATALINA_OPTS="$CATALINA_OPTS -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n" /usr/local/tomcat/bin/catalina.sh run 7 | fi 8 | -------------------------------------------------------------------------------- /tomcat-app/7.0/supervisor/supervisord.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | 4 | [program:tomcat] 5 | command=/usr/local/tomcat/bin/catalina.sh run 6 | 7 | [program:tomcat-jpda] 8 | command=/usr/local/sbin/tomcat-jpda 9 | autostart=false 10 | stopasgroup=true 11 | 12 | [program:app-init] 13 | command=/usr/local/sbin/app-init 14 | autorestart=false 15 | startsecs=0 16 | startretries=0 17 | -------------------------------------------------------------------------------- /tomcat-app/7.0/system/init: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | typeset script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 4 | 5 | . "$script_dir/system-locale.sh" 6 | . "$script_dir/system-timezone.sh" 7 | 8 | if [ "x$LANG" != "x" ]; then 9 | _system_locale_configure "$LANG" 10 | fi 11 | 12 | if [ "x$TZ" != "x" ]; then 13 | _system_timezone_configure "$TZ" 14 | fi 15 | 16 | /usr/bin/supervisord -c /etc/supervisor/supervisord.conf 17 | -------------------------------------------------------------------------------- /tomcat-app/7.0/system/locale.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_locale_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_locale_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local lang="$1" 11 | 12 | grep "$lang" /etc/locale.gen 13 | RETVAL=$? 14 | if [ $RETVAL -ne 0 ]; then 15 | echo "ERROR: \"$lang\" does not exist." 16 | 17 | return $RETVAL 18 | fi 19 | 20 | sed -i "s/# *\($lang\)/\\1/" /etc/locale.gen 21 | RETVAL=$? 22 | if [ $RETVAL -ne 0 ]; then 23 | return $RETVAL 24 | fi 25 | 26 | locale-gen 27 | RETVAL=$? 28 | if [ $RETVAL -ne 0 ]; then 29 | return $RETVAL 30 | fi 31 | 32 | update-locale LANG="$lang" 33 | RETVAL=$? 34 | if [ $RETVAL -ne 0 ]; then 35 | return $RETVAL 36 | fi 37 | 38 | export LANG="$lang" 39 | export LANGUAGE="$lang" 40 | 41 | return 0 42 | } 43 | -------------------------------------------------------------------------------- /tomcat-app/7.0/system/timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function _system_timezone_configure() { 4 | if [ $# -lt 1 ]; then 5 | echo 'Usage: _system_timezone_configure ' 6 | 7 | return 1 8 | fi 9 | 10 | local timezone="$1" 11 | local timezone_file="/usr/share/zoneinfo/${timezone}" 12 | 13 | if [ ! -e $timezone_file ]; then 14 | echo "ERROR: \"$timezone_file\" does not exist." 15 | 16 | return 1 17 | fi 18 | 19 | echo "$timezone" > /etc/timezone 20 | RETVAL=$? 21 | if [ $RETVAL -ne 0 ]; then 22 | return $RETVAL 23 | fi 24 | 25 | dpkg-reconfigure -f noninteractive tzdata 26 | RETVAL=$? 27 | if [ $RETVAL -ne 0 ]; then 28 | return $RETVAL 29 | fi 30 | 31 | return 0 32 | } 33 | --------------------------------------------------------------------------------