システム開発方法
画面修正
データ修正
権限設定
フォルダー構成
public
connections
|-ConnectinManager
include
|-event
|-[table名_variables]
|-[table名_.settings]
|-appsetting
classes
templates
buttonhandler.php
DOKCER
docker build -t takipone/nginx:1.0 .
docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=*********** -d -p 3307:3306 --rm mysql:8.0.4
#DOCKR LOGIN
CREATE USER admin IDENTIFIED WITH mysql_native_password BY '1qaz2wsx3edc@@@AAA';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
PROCESSMAKER
FROM debian:jessie
MAINTAINER miyataken999@gmail.com
# Update system and install php5
RUN apt-get update -y \
&& apt-get upgrade -y \
&& apt-get install -y \
apache2 \
libapache2-mod-php5 \
libyaml-0-2 \
libyaml-dev \
net-tools \
php5 \
php5-apcu \
php5-curl \
php5-dev \
php5-gd \
php5-geoip \
php5-geos \
php5-gnupg \
php5-imagick \
php5-imap \
php5-intl \
php5-json \
php5-ldap \
php5-mcrypt \
php5-mongo \
php5-msgpack \
php5-mssql \
php5-mysql \
php5-odbc \
php5-pgsql \
php5-sqlite \
php5-sybase \
php5-xsl \
php-apc \
php-pear \
php-soap \
wget \
&& pecl channel-update pecl.php.net \
&& echo y | pecl install yaml-1.3.1 \
&& echo "extension=yaml.so" > /etc/php5/mods-available/yaml.ini \
&& php5enmod yaml \
&& apt-get purge -y \
libyaml-dev \
php5-dev \
&& apt-get autoremove -y \
&& apt-get clean -y
RUN mkdir -p "/opt" \
&& wget -O "/opt/processmaker-3.2.2+001-community.tar.gz" \
"https://sourceforge.net/projects/processmaker/files/ProcessMaker/3.2.2+001/processmaker-3.2.2+001-community.tar.gz/download" \
&& mkdir -p /opt/pm \
&& tar -C /opt/pm -xzf "/opt/processmaker-3.2.2+001-community.tar.gz" \
&& mkdir -p /opt/pm/processmaker/shared /opt/pm/processmaker/workflow/engine/js/labels \
&& chmod -R 770 /opt/pm/processmaker/shared \
/opt/pm/processmaker/workflow/public_html \
/opt/pm/processmaker/gulliver/js \
/opt/pm/processmaker/thirdparty/html2ps_pdf/cache \
/opt/pm/processmaker/workflow/engine/config \
/opt/pm/processmaker/workflow/engine/content/languages \
/opt/pm/processmaker/workflow/engine/plugins \
/opt/pm/processmaker/workflow/engine/xmlform \
/opt/pm/processmaker/workflow/engine/js/labels \
&& chmod -R 775 \
/opt/pm/processmaker/bootstrap \
/opt/pm/processmaker/config \
/opt/pm/processmaker/framework \
/opt/pm/processmaker/thirdparty/html2ps_pdf/cache \
/opt/pm/processmaker/thirdparty/html2ps_pdf/out \
/opt/pm/processmaker/thirdparty/html2ps_pdf/temp \
&& chown -R www-data:www-data /opt/pm/processmaker
# For speedup local build
# COPY processmaker-3.2.2+001-community.tar.gz /opt
# RUN mkdir -p "/opt" \
# && mkdir -p /opt/pm \
# && tar -C /opt/pm -xzf "/opt/processmaker-3.2.2+001-community.tar.gz" \
# && mkdir -p /opt/pm/processmaker/shared /opt/pm/processmaker/workflow/engine/js/labels \
# && chmod -R 770 /opt/pm/processmaker/shared \
# /opt/pm/processmaker/workflow/public_html \
# /opt/pm/processmaker/gulliver/js \
# /opt/pm/processmaker/thirdparty/html2ps_pdf/cache \
# /opt/pm/processmaker/workflow/engine/config \
# /opt/pm/processmaker/workflow/engine/content/languages \
# /opt/pm/processmaker/workflow/engine/plugins \
# /opt/pm/processmaker/workflow/engine/xmlform \
# /opt/pm/processmaker/workflow/engine/js/labels \
# && chmod -R 775 \
# /opt/pm/processmaker/bootstrap \
# /opt/pm/processmaker/config \
# /opt/pm/processmaker/framework \
# /opt/pm/processmaker/thirdparty/html2ps_pdf/cache \
# /opt/pm/processmaker/thirdparty/html2ps_pdf/out \
# /opt/pm/processmaker/thirdparty/html2ps_pdf/temp \
# && chown -R www-data:www-data /opt/pm/processmaker $PM_SHAREDDIR
# Apache Port
EXPOSE 80
ENV PM_VERSION 3.2.2+001
# Insert init script
COPY docker-entrypoint.sh /bin/
COPY 000-default.conf /etc/apache2/sites-available/
RUN chmod a+x /bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]
entry_point.sh
#!/bin/bash
set -ex
# Users to run
export RUN_USER=${RUN_USER:-"www-data"}
export RUN_GROUP=${RUN_GROUP:-"www-data"}
export HTTP_PORT=${HTTP_PORT:-"80"}
export RUN_UID=${RUN_UID:-$(id -u $RUN_USER)}
export RUN_GID=${RUN_GID:-$(id -u $RUN_GROUP)}
export APACHE_RUN_USER=$RUN_USER
export APACHE_RUN_GROUP=$RUN_GROUP
# Apache PHP default values
export APACHE_DEFAULT_SITE_CONF="/etc/apache2/sites-available/000-default.conf"
export PHP_APACHE_INI="/etc/php5/apache2/php.ini"
export PHP_CLI_INI="/etc/php5/cli/php.ini"
export PHP_MODS_AVAILABLE="/etc/php5/mods-available"
export PHP_MEMORY_LIMIT=${PHP_MEMORY_LIMIT:-"256M"}
# Uploading Large Input Documents
# http://wiki.processmaker.com/3.0/Additional_Configuration#Uploading_Large_Input_Documents
export PHP_POST_MAX_SIZE=${PHP_POST_MAX_SIZE:-"24M"}
export PHP_UPLOAD_MAX_FILESIZE=${PHP_UPLOAD_MAX_FILESIZE:-"24M"}
# Session
# see http://wiki.processmaker.com/3.0/Additional_Configuration#Managing_Login_Sessions_in_ProcessMaker
export PHP_SESSION_GC_MAXLIFETIME=${PHP_SESSION_GC_MAXLIFETIME:-"1440"}
export PHP_SESSION_CACHE_EXPIRE=${PHP_SESSION_CACHE_EXPIRE:-"180"}
export PHP_SESSION_CACHE_LIMITER=${PHP_SESSION_CACHE_LIMITER:-"nocache"}
# http://wiki.processmaker.com/3.0/Additional_Configuration#More_Rows_in_an_Output_Document
export PHP_MAX_INPUT_VARS=${PHP_MAX_INPUT_VARS:-"8000"}
# http://wiki.processmaker.com/3.0/Additional_Configuration#Insertion_of_quotation_marks_and_backslashes
export PHP_MAGIC_QUOTES_GPC=${PHP_MAGIC_QUOTES_GPC:-"off"}
export PHP_MAGIC_QUOTES_RUNTIME=${PHP_MAGIC_QUOTES_RUNTIME:-"off"}
export PHP_MAGIC_QUOTES_SYBASE=${PHP_MAGIC_QUOTES_SYBASE:-"off"}
# PM default values
export PM_DIR="/opt/pm"
export PM_ROOTDIR="$PM_DIR/processmaker"
export PM_SHAREDDIR="$PM_ROOTDIR/shared"
function deploy_php_config {
# Set apache php.ini
sed -i "s/^memory_limit.*=.*/memory_limit = $PHP_MEMORY_LIMIT/" $PHP_APACHE_INI \
&& sed -i "s/^short_open_tag.*=.*/short_open_tag = on/" $PHP_APACHE_INI \
&& sed -i "s/^post_max_size.*=.*/post_max_size = $PHP_POST_MAX_SIZE/" $PHP_APACHE_INI \
&& sed -i "s/^upload_max_filesize.*=.*/upload_max_filesize = $PHP_UPLOAD_MAX_FILESIZE/" $PHP_APACHE_INI \
&& sed -i "s/^session\.gc_maxlifetime.*=.*/session.gc_maxlifetime = $PHP_SESSION_GC_MAXLIFETIME/" $PHP_APACHE_INI \
&& sed -i "s/^session\.cache_limiter.*=.*/session.cache_limiter = $PHP_SESSION_CACHE_LIMITER/" $PHP_APACHE_INI \
&& sed -i "s/^session\.cache_expire.*=.*/session.cache_expire = $PHP_SESSION_CACHE_EXPIRE/" $PHP_APACHE_INI \
&& sed -i "s/; max_input_vars.*=.*/max_input_vars = $PHP_MAX_INPUT_VARS/" $PHP_APACHE_INI \
|| return 1
# Set cli php.ini
sed -i "s/^short_open_tag.*=.*/short_open_tag = on/" $PHP_CLI_INI \
&& sed -i "s/^post_max_size.*=.*/post_max_size = $PHP_POST_MAX_SIZE/" $PHP_CLI_INI \
&& sed -i "s/^upload_max_filesize.*=.*/upload_max_filesize = $PHP_UPLOAD_MAX_FILESIZE/" $PHP_CLI_INI \
&& sed -i "s/^session\.gc_maxlifetime.*=.*/session.gc_maxlifetime = $PHP_SESSION_GC_MAXLIFETIME/" $PHP_CLI_INI \
&& sed -i "s/^session\.cache_limiter.*=.*/session.cache_limiter = $PHP_SESSION_CACHE_LIMITER/" $PHP_CLI_INI \
&& sed -i "s/^session\.cache_expire.*=.*/session.cache_expire = $PHP_SESSION_CACHE_EXPIRE/" $PHP_CLI_INI \
&& sed -i "s/; max_input_vars.*=.*/max_input_vars = $PHP_MAX_INPUT_VARS/" $PHP_CLI_INI \
|| return 1
if [ ! -f $PHP_MODS_AVAILABLE/magic_quotes.ini ]; then
echo "
magic_quotes_gpc = $PHP_MAGIC_QUOTES_GPC
magic_quotes_runtime = $PHP_MAGIC_QUOTES_RUNTIME
magic_quotes_sybase = $PHP_MAGIC_QUOTES_SYBASE" > $PHP_MODS_AVAILABLE/magic_quotes.ini || return 1
else
sed -i "s/^magic_quotes_gpc.*=.*/magic_quotes_gpc = $PHP_MAGIC_QUOTES_GPC/" $PHP_MODS_AVAILABLE/magic_quotes.ini \
&& sed -i "s/^magic_quotes_runtime.*=.*/magic_quotes_runtime = $PHP_MAGIC_QUOTES_RUNTIME/" $PHP_MODS_AVAILABLE/magic_quotes.ini \
&& sed -i "s/^magic_quotes_sybase.*=.*/magic_quotes_sybase = $PHP_MAGIC_QUOTES_SYBASE/" $PHP_MODS_AVAILABLE/magic_quotes.ini \
|| return 1
fi
php5enmod magic_quotes
if [ ! -z $PHP_DATE_TIMEZONE ]; then
if [ -f /usr/share/zoneinfo/$PHP_DATE_TIMEZONE ]; then
cp /usr/share/zoneinfo/$PHP_DATE_TIMEZONE /etc/localtime
echo $PHP_DATE_TIMEZONE > /etc/timezone
time_zone_aux=${PHP_DATE_TIMEZONE//\//\\/}
sed -i "s/^date\.timezone.*=.*/date.timezone = $time_zone_aux/" $PHP_APACHE_INI
sed -i "s/^date\.timezone.*=.*/date.timezone = $time_zone_aux/" $PHP_CLI_INI
fi
fi
}
function deploy_apache_config() {
if [ -z $(id -u $RUN_GROUP) ]; then
if [ -z "$RUN_GID" ]; then
addgroup --system $RUN_GROUP || return 1
else
addgroup --system --gid $RUN_GID $RUN_GROUP || return 1
fi
fi
if [ -z $(id -u $RUN_USER) ]; then
if [ -z "$RUN_UID" ]; then
adduser --system --home $PM_ROOTDIR --no-create-home --gid $RUN_GID $RUN_USER || return 1
else
adduser --system --home $PM_ROOTDIR --no-create-home --uid $RUN_UID --gid $RUN_GID $RUN_USER || return 1
fi
fi
sed -i "s/^export APACHE_RUN_USER=.*/export APACHE_RUN_USER=$APACHE_RUN_USER/" /etc/apache2/envvars
sed -i "s/^export APACHE_RUN_GROUP=.*/export APACHE_RUN_GROUP=$APACHE_RUN_GROUP/" /etc/apache2/envvars
[[ -z $HTTPD_SERVER_ADMIN ]] || sed -i "s/^ServerAdmin.*/ServerAdmin $HTTPD_SERVER_ADMIN/" $APACHE_DEFAULT_SITE_CONF
sed -i "s/^Listen 80\$/Listen $HTTP_PORT/" /etc/apache2/ports.conf
sed -i "s/^<VirtualHost.*/<VirtualHost \*:$HTTP_PORT>/" $APACHE_DEFAULT_SITE_CONF
pm_dir=${PM_ROOTDIR//\//\\/}
sed -i "s/^DocumentRoot.*/DocumentRoot $pm_dir\/workflow\/public_html/" $APACHE_DEFAULT_SITE_CONF \
&& sed -i "s/^<Directory.*/<Directory \"$pm_dir\/workflow\/public_html\">/" $APACHE_DEFAULT_SITE_CONF \
|| return 1
ln -sfT /dev/stderr "/var/log/apache2/error.log"
ln -sfT /dev/stdout "/var/log/apache2/access.log"
a2enmod expires
a2enmod rewrite
a2enmod filter
a2enmod deflate
}
function deploy_pm_src() {
chown -R $RUN_USER:$RUN_GROUP $PM_ROOTDIR || return 1
if [ -d $PM_DIR/plugins ]; then
ls $PM_DIR/plugins | while read plugin_dir
do ls $PM_DIR/plugins/$plugin_dir | while read file_name
do ln -s $PM_DIR/plugins/$plugin_dir/$file_name $PM_ROOTDIR/workflow/engine/plugins/$file_name
done
done
chown -R $RUN_USER:$RUN_GROUP $PM_DIR/plugins
chmod -R 770 $PM_DIR/plugins
fi
}
function deploy() {
# Deploy only with root user.
if [ $(id -u) -ne "0" ]; then
echo "Deploy only with root user."
return 1
fi
deploy_php_config \
&& deploy_apache_config \
&& deploy_pm_src || return 1
touch /deploy
return 0
}
if [ ! -f /deploy ]; then
deploy || exit 1
fi
if [ -f /var/run/apache2/apache2.pid ]; then
rm -f /var/run/apache2/apache2.pid
fi
apache2ctl -DFOREGROUND $@