PHPの展開はredhat

カタログ1. PHPの展開プロセス:

カタログフォーム生成(1)充填は、配備、サービスおよびOC新しいアプリを実行することに一見等価オブジェクトのシリーズを構築し、

(2)は、PHPは、コンテナの実行を開始するS2Iビルドを構築します。

(3)GitHubのからコードをダウンロードします。

(4)はアセンブルが所望の位置に配置されるアプリケーションスクリプトのソースを実行します。

(5)のImageStream CMDとアイテム画像に新しいコンテナをコミットスクリプトを実行するように構成されました。

(6)DCが生成さミラーリング・アプリケーションの展開を引っ張ります。

 

2.アプリケーションのサイドノート:

(1)カスタマイズされた環境変数:コード指定したディレクトリ.s2i /環境 

プライマル独自の環境変数:

HOSTNAME = 41c549462611 
PHP_DEFAULT_INCLUDE_PATH = / OPT / RH / RH-php72 /ルートを/ usr / share /梨
APP_ROOT = / OPT / APP- ルート
PHP_VER_SHORT = 72 
TERM = xtermの
App_Dataに =の/ opt / APP-ルート/ SRC 
DESCRIPTION =利用可能なPHP 7.2容器として基台であるため、様々なPHP 7.2アプリケーションおよびフレームワークを構築し、実行しています。PHPは、HTMLに埋め込まれたスクリプト言語です。PHPは、それが簡単にしようとするために、開発者が動的に生成されるWebページを記述する。PHPも申し出は内蔵データベース統合のためにいくつかの商用、非商用のデータベース管理システムは、そのデータベース対応のウェブページの書き込み PHPは非常に簡単です。コーディングPHPの最も一般的な用途は、代替としておそらくのためのCGIスクリプト。
NODEJS_SCL = rh- nodejs10 
HTTPD_VAR_PATH =は/ opt / RH / httpd24 /ルートの/ var 
NAME = PHP 
HTTPD_CONFIGURATION_PATH =は/ opt /アプリ-ルートの/ etc / conf.dの
PATH =は/ opt /アプリ-ルート/ srcに/ binにします。/ opt /アプリルート/ binに:は/ usr / local / sbinに:は/ usr / local /ビン:は/ usr / sbinにします。/ usr / binに:/ sbinに:/ binにします。/ opt / RH / RH-php72 /ルートは/ usr / binに
HTTPD_VAR_RUN =の/ var /実行/ httpdの
STI_SCRIPTS_URL =画像:// は/ usr / libexecに/ s2i
HTTPD_MAIN_CONF_PATH =は/ etc / httpdの/ confに
/ srcにPWD =は/ opt /アプリ-ルート
STI_SCRIPTS_PATH =は/ usr / libexecに/ s2i 
SUMMARY =プラットフォームのために構築し、PHP 7.2で実行するアプリケーションを
PLATFORM = EL7 
HTTPD_DATA_PATH =の/ var / WWWの
HOME =は/ opt /アプリ-ルート/ srcに
HTTPD_DATA_ORIG_PATH =は/ opt / RH / httpd24 /ルートの/ var / WWW 
SHLVL = 1 
PHP_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 /コンテナのスクリプト/ PHP / 
HTTPD_MAIN_CONF_D_PATH=の/ etc /のhttpd / conf.d 
PHP_VERSION = 7.2 
_ =は/ usr / binに/ ENV

 

(2)スクリプトを適応:ソースイメージをカバーするためにスクリプトを変更します

スクリプトを組み立てます:

#!/ binに/ bashのの

セット - 電子

源$ {} PHP_CONTAINER_SCRIPTS_PATH /common.sh
 
shopt - S dotglob 
エコー "--->インストールアプリケーションのソース..." 
MVを/ tmp / SRC / * ./ 

#修正ソースディレクトリのパーミッションを
修正-permissions ./ 
FIX-権限$ {HTTPD_CONFIGURATION_PATH} 
変更NPMレジストリミラー提供されている場合
であれば[ "$ NPM_MIRROR" -N]。その後、
    NPMコンフィグセット登録$ NPM_MIRRORの
Fiの

場合は[-f composer.json]。その後、
  エコー"発見'composer.json'、composer.pharを使用して依存関係を...インストール" 
  RETRIES = 6
 
  #作曲をインストールします。
  TEMPFILE = $(mktempを)
  (; I <$ RETRIES; I ++)は、(i = 0)のため、行う

    場合は[-z "$ COMPOSER_INSTALLER"]; その後、
      = "https://getcomposer.org/installer" COMPOSER_INSTALLERをエクスポート
    Fiの

    "$((I + 1))/ $ RETRIES試み、ダウンロード$ COMPOSER_INSTALLER"エコー
    $ TEMPFILE $ COMPOSER_INSTALLER &&ブレーク-oカール
    スリープ10 
  行って
  いる場合に、[[私== $ RETRIES]] $。その後、
    「ダウンロードはあきらめ、失敗しました。」エコー 
    出口1つ
  のfi 
  PHP <$ TEMPFILE 

  なら[ "$(LS -a / TMP /アーティファクト/ 2>を/ dev / null)"]。その後、
    "ビルド成果物の復元"エコー
    MVを/ tmp /アーティファクト/ * $ HOME / 
  Fiが

  [-n "$ COMPOSER_MIRROR"]の場合; その後、
    ./composer.phar設定-g repositories.packagist作曲の$ COMPOSER_MIRRORの
  Fi回線

  #は、アプリをインストールComposerが使用して依存関係
  --no-ANSI --optimize-オートローダ$ COMPOSER_ARGS --no-相互作用をインストール./composer.phar 

  [場合!-f composer.lock]。その後、
    エコー-e「\ nConsiderは、あなたのソースリポジトリに『composer.lock』ファイルを追加します\ n」
  Fi回線
Fiの

#ポスト組み立てファイル
process_extending_files ./php-post-assemble/ $ {PHP_CONTAINER_SCRIPTS_PATH} /ポスト組み立て/ 

#修正ソースディレクトリのパーミッション
修正-権限./ 
修正-権限$ {} HTTPD_CONFIGURATION_PATH

 

:()アプリケーションサーバとApacheを起動するためのスクリプトを実行します

SH-4.2 $猫の実行!/ binに/ 、bashの

ソース$ {} PHP_CONTAINER_SCRIPTS_PATH /common.sh
 
export_vars = $(cgroup- 限度)。$ export_varsエクスポート
輸出のDocumentRoot = $ {をDocumentRootのを: - /}
デフォルトのphp.iniの設定値、すべて取ら
#をPHPのデフォルトから。
輸出のerror_reporting = $ {のerror_reporting:-E_ALL&〜E_NOTICE} 
輸出はdisplay_errors = $ {はdisplay_errors: - ON} 
輸出DISPLAY_STARTUP_ERRORS = $ {DISPLAY_STARTUP_ERRORS: - OFF} 
輸出TRACK_ERRORS = $ {TRACK_ERRORS: - OFF} 
輸出HTML_ERRORS = $ {HTML_ERRORS: - ON}
輸出INCLUDE_PATH = $ {INCLUDE_PATH: - :は/ opt /アプリ-ルート/ SRC:$ {PHP_DEFAULT_INCLUDE_PATH}} 
輸出PHP_MEMORY_LIMIT = $ {PHP_MEMORY_LIMIT: - 128M} 
輸出SESSION_NAME = $ {SESSION_NAME: - PHPSESSID} 
輸出SESSION_HANDLER = $ {SESSION_HANDLER : - ファイル} 
輸出SESSION_PATH = $ {SESSION_PATH: - / tmpに/ セッション} 
輸出SESSION_COOKIE_DOMAIN = $ {SESSION_COOKIE_DOMAIN: - } 
輸出SESSION_COOKIE_HTTPONLY = $ {SESSION_COOKIE_HTTPONLY: - } 
輸出SESSION_COOKIE_SECURE = $ {SESSION_COOKIE_SECURE:-0 } 
輸出はshort_open_tag = $ { short_open_tagが: - OFF}

#TODO動的コンテナのメモリ制限に基づいて計算されなければならない / 16 
:エクスポートOPCACHE_MEMORY_CONSUMPTION = $ {-128 OPCACHE_MEMORY_CONSUMPTION } 

エクスポートOPCACHE_REVALIDATE_FREQ:= $ {OPCACHE_REVALIDATE_FREQ -2 } 

エクスポートPHPRC { - $ {PHP_SYSCONF_PATH} /php.ini PHPRC} = $ 
輸出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 /アプリルート/etc/php.d/10-opcache.ini.template> $ {PHP_SYSCONF_PATH} /php.d/10-opcache.ini 
エクスポートHTTPD_START_SERVERS = $ {HTTPD_START_SERVERS:-8 } 
エクスポートHTTPD_MAX_SPARE_SERVERS = $((HTTPD_START_SERVERS + 10

))

もし [-n "$ {NO_MEMORY_LIMIT: - }" -o -z "$ {MEMORY_LIMIT_IN_BYTES: - }" ]。その後、
  輸出HTTPD_MAX_REQUEST_WORKERS = $ {HTTPD_MAX_REQUEST_WORKERS:-256 }
 他に
  #簡単な計算のための MaxRequestWorkersは次のようになります。総メモリ/ サイズごとApacheプロセス。
  #総メモリは、のcgroupから決定され、平均サイズのため
  #Apacheプロセスは、15メガバイトと推定されます。
  max_clients_computed = $((MEMORY_LIMIT_IN_BYTES / 1024/1024年から1015年))
  #MaxClientsのは5に設定されているにStartServers、より低くてはいけません
  #の場合コンテナは、私たちが4にMaxClientsのピン<64Mにメモリ制限が設定されています
  [[$はmax_clients_computed -le 4] && max_clients_computed = 4 
  輸出HTTPD_MAX_REQUEST_WORKERS = $ {HTTPD_MAX_REQUEST_WORKERS: - $ max_clients_computed} 
  エコー " - >のcgroupメモリ制限を使用して、設定されているHTTPD_MAX_REQUEST_WORKERS = $ {HTTPD_MAX_REQUEST_WORKERS}" 
のfi 

#は、事前 - 起動ファイル
process_extending_filesの$ {App_Dataに} / PHP-プレスタート/ $ {PHP_CONTAINER_SCRIPTS_PATH} /始動前/ 

EXECのhttpd -D FOREGROUND
コードの表示

 

プライマルミラー3.php:

CentOSの/ s2i塩基centos7 FROM
 
#この画像では、Apache提供 + PHP環境のためのPHPを実行している
#アプリケーションを。

EXPOSE 8080を
EXPOSE 8443 

#説明
#この画像はApacheの提供 2.4 + PHP 7.2環境をするためにPHPアプリケーションを実行します。
#露出ポート: * 8080 -代替ポートのためのhttp 

ENV PHP_VERSION = 7.2 \ 
    PHP_VER_SHORT = 72 \ 
    NAME = PHP \ 
    PATH = $ PATH:/ OPT / RH / RH-php72 /ルートは/ usr / binに

ENV概要=「PHP $ PHP_VERSIONアプリケーションを構築し、実行するためのプラットフォーム」\ 
    DESCRIPTION =」コンテナとして利用可能PHP $ PHP_VERSIONが\のための基本プラットフォームである
様々なPHP $ PHP_VERSIONアプリケーションやフレームワークを構築し、実行している。\ 
PHPは、HTMLに埋め込まれたスクリプト言語です。PHP試みは、開発者\のために簡単にそれを作るために
、動的に生成されたWebページを記述する。PHPも申し出内蔵のデータベース統合\ 
いくつかの商用、非商用のデータベース管理システムのため、\執筆ので
PHPとデータベース対応のウェブページはかなり単純であるザPHPは\コーディングの最も一般的な用途は、
CGIスクリプトの代わりとして考えられます。

LABELサマリー =」$ {} SUMMARY」 \
      説明 = "$ {DESCRIPTION}" \ 
      io.k8s.description = "$ {DESCRIPTION}" \ 
      io.k8s.display -name = "PHP $ {PHP_VERSION}とアパッチ2.4" \ 
      io.openshift.expose -services =」 8080:HTTP」\ 
      io.openshift.tags = "ビルダー、$ {NAME}、$ {NAME} $ {} PHP_VER_SHORT、RH - $ {NAME} $ {PHP_VER_SHORT}" \ 
      io.openshift.s2i.scripts -url = "画像:/// USR / libexecに/ s2i" \ 
      io.s2i.scripts -url = "画像:/// USR / libexecに/ s2i" \  = "CentOSの/ $ {NAME} - $ {PHP_VER_SHORT} -centos7 " \ 
      com.redhat.component= "RH - $ {NAME} $ {} PHP_VER_SHORT -container" \ 
      バージョン = "$ {PHP_VERSION}" \ 
      ヘルプ = "より多くの情報をご覧くださいhttps://github.com/sclorg/s2i-${NAME}-container " \ 
      使用 =" s2iビルドhttps://github.com/sclorg/s2i-php-container.git --context-DIR = $ {PHP_VERSION} /試験/試験アプリのCentOS / $ {NAME} - $ {PHP_VER_SHORT } -centos7サンプル・サーバー" \ 
      メンテナ = "SoftwareCollections.org <[email protected]>" 
インストールのApache HTTPDとPHP 
RUN yumをインストール -y CentOSのリリース-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-国際空港RH-php72-PHP-LDAP RH-php72-のphp-mbstringのRH-php72-PHP-PDO \ 
                  RH-php72-PHP-プロセスRH-php72-PHP-石鹸RH-php72-PHP-opcache RH-php72-のphp-xmlの\ 
                  RH-php72-PHP-GMP RH-php72-PHP-PECL-apcu httpd24-mod_sslの "&& \ 
    yumをインストール -y --setopt = tsflags = nodocs $ INSTALL_PKGS --nogpgcheck && \ 
    RPM -V $ INSTALL_PKGS && \ 
    yumの -yクリーンすべて--enablerepo = '*' 

ENV PHP_CONTAINER_SCRIPTS_PATH =を/ usr / share /コンテナのスクリプト/ PHP / \ 
    App_Dataに = $ {APP_ROOT} / srcの\ 
    PHP_DEFAULT_INCLUDE_PATH = / opt / RH / RH-php72 /ルートは、/ usr / share /梨\
    PHP_SYSCONF_PATH = /などの/ 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 /実行/ httpdの\ 
    HTTPD_DATA_PATH =の/ var / WWW \ 
    HTTPD_DATA_ORIG_PATH =は/ opt / RH / httpd24 /ルートの/ var / WWW \ 
    HTTPD_VAR_PATH =は/ opt / RH / httpd24 /ルートの/ var \ 
    SCL_ENABLED = rh- php72 

#特定の言語の画像から$ STI_SCRIPTS_PATHにS2Iスクリプトをコピー
COPY。/ s2i / binに/$ STI_SCRIPTS_PATH 

#コピーした画像に余分なファイル。
COPY。/ルート/ / 

へのファイルシステムの#リセット権限デフォルト
RUNは/ usr /のlibexecに/コンテナセットアップ&& RPMファイル・アクセス権の
 
USER 1001 

#を設定し、デフォルトの言語の画像の利用印刷するCMDを
CMD $ STI_SCRIPTS_PATH /使用状況を
コードの表示

https://github.com/sclorg/s2i-php-container/tree/master/7.2

 

おすすめ

転載: www.cnblogs.com/mfrankm/p/12318748.html