redhat php 重启命令行,redhat PHP 部署(示例代码)

1.通过catalog部署php过程:

(1)填写catalog表单生成builds,deployment,service等一系列对象,貌似等价于执行oc new-app;

(2)PHP builds容器启动 执行S2I build;

(3)从GitHub上下载代码;

(4)运行assemble脚本将应用程序源放置在所需的位置;

(5)设置run脚本为CMD 并commit为新的容器镜像到项目的imagestream;

(6)dc拉起生成的镜像实现应用部署 。

2.应用端注意事项:

(1)自定义环境变量 :代码指定目录.s2i/environment

源生自带的环境变量:

HOSTNAME=41c549462611

PHP_DEFAULT_INCLUDE_PATH=/opt/rh/rh-php72/root/usr/share/pear

APP_ROOT=/opt/app-root

PHP_VER_SHORT=72TERM=xterm

APP_DATA=/opt/app-root/src

DESCRIPTION=PHP 7.2 available as container is a base platform for building and running various PHP 7.2 applications and frameworks. PHP is an HTML-embedded scripting language. PHP attempts to make it easy for developers to write dynamically generated web pages. PHP also offers built-in database integration for several commercial and non-commercial database management systems, so writing a database-enabled webpage with PHP is fairly simple. The most common use of PHP coding is probably as a replacement forCGI scripts.

NODEJS_SCL=rh-nodejs10

HTTPD_VAR_PATH=/opt/rh/httpd24/root/var

NAME=php

HTTPD_CONFIGURATION_PATH=/opt/app-root/etc/conf.d

PATH=/opt/app-root/src/bin:/opt/app-root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/rh/rh-php72/root/usr/bin

HTTPD_VAR_RUN=/var/run/httpd

STI_SCRIPTS_URL=image:///usr/libexec/s2i

HTTPD_MAIN_CONF_PATH=/etc/httpd/conf

PWD=/opt/app-root/src

STI_SCRIPTS_PATH=/usr/libexec/s2i

SUMMARY=Platform for building and running PHP 7.2applications

PLATFORM=el7

HTTPD_DATA_PATH=/var/www

HOME=/opt/app-root/src

HTTPD_DATA_ORIG_PATH=/opt/rh/httpd24/root/var/www

SHLVL=1PHP_SYSCONF_PATH=/etc/opt/rh/rh-php72

SCL_ENABLED=rh-php72

PHP_HTTPD_CONF_FILE=rh-php72-php.conf

PHP_CONTAINER_SCRIPTS_PATH=/usr/share/container-scripts/php/HTTPD_MAIN_CONF_D_PATH=/etc/httpd/conf.d

PHP_VERSION=7.2_=/usr/bin/env

(2)适配脚本:如需修改覆盖源镜像脚本即可

assemble 脚本:

#!/bin/bash

set-e

source ${PHP_CONTAINER_SCRIPTS_PATH}/common.sh

shopt-s dotglob

echo"---> Installing application source..."mv/tmp/src/*./

# Fix source directory permissions

fix-permissions ./

fix-permissions ${HTTPD_CONFIGURATION_PATH}

# Change the npm registry mirror if provided

if [ -n "$NPM_MIRROR" ]; then

npm config set registry $NPM_MIRROR

fi

if [ -f composer.json ]; then

echo "Found ‘composer.json‘, installing dependencies using composer.phar... "

# Install Composer

TEMPFILE=$(mktemp)

RETRIES=6

for ((i=0; i

if [ -z "$COMPOSER_INSTALLER" ]; then

export COMPOSER_INSTALLER="https://getcomposer.org/installer"

fi

echo "Downloading $COMPOSER_INSTALLER, attempt $((i+1))/$RETRIES"

curl -o $TEMPFILE $COMPOSER_INSTALLER && break

sleep 10

done

if [[ $i == $RETRIES ]]; then

echo "Download failed, giving up."

exit 1

fi

php

if [ "$(ls -a /tmp/artifacts/ 2>/dev/null)" ]; then

echo "Restoring build artifacts"

mv /tmp/artifacts/* $HOME/

fi

# Change the repo mirror if provided

if [ -n "$COMPOSER_MIRROR" ]; then

./composer.phar config -g repositories.packagist composer $COMPOSER_MIRROR

fi

# Install App dependencies using Composer

./composer.phar install --no-interaction --no-ansi --optimize-autoloader $COMPOSER_ARGS

if [ ! -f composer.lock ]; then

echo -e "

Consider adding a ‘composer.lock‘ file into your source repository.

"

fi

fi

# post-assemble files

process_extending_files ./php-post-assemble/ ${PHP_CONTAINER_SCRIPTS_PATH}/post-assemble/

# Fix source directory permissions

fix-permissions ./

fix-permissions ${HTTPD_CONFIGURATION_PATH}

run脚本:(启动应用程序以及Apache服务器)

jia.gif

jian.gif

sh-4.2$ cat run

#!/bin/bash

source ${PHP_CONTAINER_SCRIPTS_PATH}/common.sh

export_vars=$(cgroup-limits); export $export_vars

export DOCUMENTROOT=${DOCUMENTROOT:-/}

# Default php.ini configuration values, all taken

# from php defaults.

export ERROR_REPORTING=${ERROR_REPORTING:-E_ALL & ~E_NOTICE}

export DISPLAY_ERRORS=${DISPLAY_ERRORS:-ON}

export DISPLAY_STARTUP_ERRORS=${DISPLAY_STARTUP_ERRORS:-OFF}

export TRACK_ERRORS=${TRACK_ERRORS:-OFF}

export HTML_ERRORS=${HTML_ERRORS:-ON}

export INCLUDE_PATH=${INCLUDE_PATH:-.:/opt/app-root/src:${PHP_DEFAULT_INCLUDE_PATH}}

export PHP_MEMORY_LIMIT=${PHP_MEMORY_LIMIT:-128M}

export SESSION_NAME=${SESSION_NAME:-PHPSESSID}

export SESSION_HANDLER=${SESSION_HANDLER:-files}

export SESSION_PATH=${SESSION_PATH:-/tmp/sessions}

export SESSION_COOKIE_DOMAIN=${SESSION_COOKIE_DOMAIN:-}

export SESSION_COOKIE_HTTPONLY=${SESSION_COOKIE_HTTPONLY:-}

export SESSION_COOKIE_SECURE=${SESSION_COOKIE_SECURE:-0}

export SHORT_OPEN_TAG=${SHORT_OPEN_TAG:-OFF}

# TODO should be dynamically calculated based on container memory limit/16

export OPCACHE_MEMORY_CONSUMPTION=${OPCACHE_MEMORY_CONSUMPTION:-128}

export OPCACHE_REVALIDATE_FREQ=${OPCACHE_REVALIDATE_FREQ:-2}

export PHPRC=${PHPRC:-${PHP_SYSCONF_PATH}/php.ini}

export PHP_INI_SCAN_DIR=${PHP_INI_SCAN_DIR:-${PHP_SYSCONF_PATH}/php.d}

envsubst< /opt/app-root/etc/php.ini.template > ${PHP_SYSCONF_PATH}/php.ini

envsubst < /opt/app-root/etc/php.d/10-opcache.ini.template > ${PHP_SYSCONF_PATH}/php.d/10-opcache.ini

export HTTPD_START_SERVERS=${HTTPD_START_SERVERS:-8}

export HTTPD_MAX_SPARE_SERVERS=$((HTTPD_START_SERVERS+10))if [ -n "${NO_MEMORY_LIMIT:-}" -o -z "${MEMORY_LIMIT_IN_BYTES:-}"]; then

#

export HTTPD_MAX_REQUEST_WORKERS=${HTTPD_MAX_REQUEST_WORKERS:-256}else# A simple calculationfor MaxRequestWorkers would be: Total Memory /Size Per Apache process.

# The total memory is determined from the Cgroups and the average sizeforthe

# Apache process is estimated to 15MB.

max_clients_computed=$((MEMORY_LIMIT_IN_BYTES/1024/1024/15))

# The MaxClients should never be lower than StartServers, which is set to 5.

# Incase the container has memory limit set to <64M we pin the MaxClients to 4.

[[ $max_clients_computed-le 4 ]] && max_clients_computed=4export HTTPD_MAX_REQUEST_WORKERS=${HTTPD_MAX_REQUEST_WORKERS:-$max_clients_computed}

echo"-> Cgroups memory limit is set, using HTTPD_MAX_REQUEST_WORKERS=${HTTPD_MAX_REQUEST_WORKERS}"fi

# pre-start files

process_extending_files ${APP_DATA}/php-pre-start/ ${PHP_CONTAINER_SCRIPTS_PATH}/pre-start/exec httpd-D FOREGROUND

View Code

3.php源生镜像:

jia.gif

jian.gif

FROM centos/s2i-base-centos7

# This image provides an Apache+PHP environment forrunning PHP

# applications.

EXPOSE8080EXPOSE8443# Description

# This image provides an Apache2.4 + PHP 7.2 environment forrunning PHP applications.

# Exposed ports:

#* 8080 - alternative port forhttp

ENV PHP_VERSION=7.2PHP_VER_SHORT=72NAME=php PATH=$PATH:/opt/rh/rh-php72/root/usr/bin

ENV SUMMARY="Platform for building and running PHP $PHP_VERSION applications"DESCRIPTION="PHP $PHP_VERSION available as container is a base platform for building and running various PHP $PHP_VERSION applications and frameworks. PHP is an HTML-embedded scripting language. PHP attempts to make it easy for developers to write dynamically generated web pages. PHP also offers built-in database integration for several commercial and non-commercial database management systems, so writing a database-enabled webpage with PHP is fairly simple. The most common use of PHP coding is probably as a replacement for CGI scripts."LABEL summary="${SUMMARY}"description="${DESCRIPTION}"io.k8s.description="${DESCRIPTION}"io.k8s.display-name="Apache 2.4 with PHP ${PHP_VERSION}"io.openshift.expose-services="8080:http"io.openshift.tags="builder,${NAME},${NAME}${PHP_VER_SHORT},rh-${NAME}${PHP_VER_SHORT}"io.openshift.s2i.scripts-url="image:///usr/libexec/s2i"io.s2i.scripts-url="image:///usr/libexec/s2i"name="centos/${NAME}-${PHP_VER_SHORT}-centos7"com.redhat.component="rh-${NAME}${PHP_VER_SHORT}-container"version="${PHP_VERSION}"help="For more information visit https://github.com/sclorg/s2i-${NAME}-container"usage="s2i build https://github.com/sclorg/s2i-php-container.git --context-dir=${PHP_VERSION}/test/test-app centos/${NAME}-${PHP_VER_SHORT}-centos7 sample-server"maintainer="SoftwareCollections.org "# Install Apache httpd and PHP

RUN yum install-y centos-release-scl &&INSTALL_PKGS="rh-php72 rh-php72-php rh-php72-php-mysqlnd rh-php72-php-pgsql rh-php72-php-bcmath rh-php72-php-gd rh-php72-php-intl rh-php72-php-ldap rh-php72-php-mbstring rh-php72-php-pdo rh-php72-php-process rh-php72-php-soap rh-php72-php-opcache rh-php72-php-xml rh-php72-php-gmp rh-php72-php-pecl-apcu httpd24-mod_ssl" &&yum install-y --setopt=tsflags=nodocs $INSTALL_PKGS --nogpgcheck &&rpm-V $INSTALL_PKGS &&yum-y clean all --enablerepo=‘*‘ENV PHP_CONTAINER_SCRIPTS_PATH=/usr/share/container-scripts/php/APP_DATA=${APP_ROOT}/src PHP_DEFAULT_INCLUDE_PATH=/opt/rh/rh-php72/root/usr/share/pear PHP_SYSCONF_PATH=/etc/opt/rh/rh-php72 PHP_HTTPD_CONF_FILE=rh-php72-php.conf HTTPD_CONFIGURATION_PATH=${APP_ROOT}/etc/conf.d HTTPD_MAIN_CONF_PATH=/etc/httpd/conf HTTPD_MAIN_CONF_D_PATH=/etc/httpd/conf.d HTTPD_VAR_RUN=/var/run/httpd HTTPD_DATA_PATH=/var/www HTTPD_DATA_ORIG_PATH=/opt/rh/httpd24/root/var/www HTTPD_VAR_PATH=/opt/rh/httpd24/root/var SCL_ENABLED=rh-php72

# Copy the S2I scripts from the specific language image to $STI_SCRIPTS_PATH

COPY ./s2i/bin/$STI_SCRIPTS_PATH

# Copy extra files to the image.

COPY ./root/ /# Reset permissions of filesystem todefaultvalues

RUN/usr/libexec/container-setup && rpm-file-permissions

USER1001# Set thedefaultCMD to print the usage of the language image

CMD $STI_SCRIPTS_PATH/usage

View Code

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值