docker php環境の構築
5152 ワード
前言
本文は参考文章に基づいて、自分でPHP環境を構築してみて、中のDockerfileの編纂に対して最新の修正をして、これによって記録して、完全なコードは転送ドアの説明を見ます:ミラーのダウンロードが遅すぎて、国内のミラーを使って加速することができて、具体的には自分で を検索することができますこの方法によって4つのミラーを用いて4つのコンテナを生成し、コンテナ間の起動はdocker-compose管理によって当然1つのベースミラーを用いてもよいが、このミラーに基づいてnginx phpなどのソフトウェアをインストールし、コンテナも1つしかなく、本機のインストールのように ディレクトリ構造
phpのdockerfile php:7.2-fpmのミラー を用いた phpの拡張インストールは、コア拡張とpcel拡張に分けられ、ソースコードのインストールは、公式ドキュメント を参照してください. phalconの拡張はgitがソースファイルをダウンロードする方式gitを利用してapi-get時に をインストールした.
その他のdockerfile
nginx:
mysql:
redis:
注意: nginxのプロファイルのphp-fpmは、ネイティブ127.0.0.1ではなくdocker-composeである.ymlの名前php-fpm docker-composeの作成 phpおよびnginxなどのプロファイルを外部ファイルにマッピングする構成 を容易に修正する.プロジェクトのログファイルおよびnginxおよびphpのログファイルを外部ディレクトリにマッピングしてコンテナの再起動を防止した後、ログがない場合 .
起動と停止の作成が完了するとdocker-compose upでエラーが発生し、出力に基づいて をデバッグできます.起動問題がなければ、docker-compose up-dバックグラウンドを使用してdocker container lsを起動し、起動コンテナdocker image lsを表示してミラーリスト を表示できます.サービスを停止し、docker-compose stop を使用できます.
欠点鏡像が大きすぎるFROM php:7.2-fpm非alpineの鏡像は、デフォルトではubanutuをベースとしており、apt-get、docker-php-ext-*などのコマンドを使用することができるが、生成された鏡像が非常に大きいalpine鏡像はapk方式でパッケージ をインストールするしかない.
やるべきこと alpineミラーの作成 laradockの使用 リファレンス
参考記事公式ドキュメント
転載先:https://www.cnblogs.com/fanfan259/p/11526432.html
本文は参考文章に基づいて、自分でPHP環境を構築してみて、中のDockerfileの編纂に対して最新の修正をして、これによって記録して、完全なコードは転送ドアの説明を見ます:
app #
index.php
test
-test.php
data #
mysql
redis
logs #
nginx
mysql
php-fpm
docker_self # docker
docker-compose.yml
mysql
-Dockerfile
-conf.d
-my.conf
nginx
-Dockerfile
-nginx.conf
-conf.d
-www.conf
php
-Dokcerfile
-php-fpm.conf
-php-fom.d
-www.conf
-idc.ini
redis
-Dockerfile
phpのdockerfile
FROM php:7.2-fpm
#
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# PHP
RUN apt-get update && apt-get install -y \
git \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd \
&& docker-php-ext-install zip \
&& docker-php-ext-install pdo_mysql \
&& docker-php-ext-install opcache \
&& docker-php-ext-install mysqli \
&& rm -r /var/lib/apt/lists/*
# PECL , redis psr
# phalcon , psr
RUN pecl install redis-5.0.2 \
&& pecl install psr \
&& docker-php-ext-enable redis psr
# , Phalcon
RUN cd /home \
&& git clone --depth=1 git://github.com/phalcon/cphalcon.git \
&& cd cphalcon/build \
&& ./install \
&& echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/phalcon.ini \
&& rm -rf /home/*
# , phalcon
COPY idc.ini /data/app/idc/idc.ini
WORKDIR /data
その他のdockerfile
nginx:
FROM nginx:alpine
# set timezome
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
mysql:
FROM mysql:5.7
# set timezome
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
redis:
FROM redis:alpine
# set timezome
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
注意:
version: '3.2'
services:
php-fpm:
build: ./php
ports:
- "9000:9000"
links:
- mysql-db:mysql-db
- redis-db:redis-db
volumes:
- ../app:/data/www:rw
- ./php/php.ini:/usr/local/etc/php/php.ini:ro
- ./php/php-fpm.conf:/usr/local/etc/php/php-fpm.conf:ro
- ./php/php-fpm.d:/usr/local/etc/php/php-fpm.d:ro
- ../logs/php-fpm:/var/logs/php-fpm
- ../logs/contento:/data/logs/contento:rw
restart: always
command: php-fpm
nginx:
build: ./nginx
depends_on:
- php-fpm
links:
- php-fpm:php-fpm
volumes:
- ../app:/data/www:rw
- ./nginx/conf.d:/etc/nginx/conf.d:ro
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ../logs/nginx:/var/logs/nginx
ports:
- "80:80"
- "8080:8080"
- "443:443"
restart: always
command: nginx -g 'daemon off;'
mysql-db:
build: ./mysql
ports:
- "3306:3306"
volumes:
- ../data/mysql:/var/lib/mysql:rw
- ../logs/mysql:/var/lib/mysql-logs:rw
- ./mysql/conf.d:/etc/mysql/conf.d:ro
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test
MYSQL_USER: test
MYSQL_PASSWORD: test123
restart: always
command: "--character-set-server=utf8"
redis-db:
build: ./redis
ports:
- "6379:6379"
volumes:
- ../data/redis:/data
restart: always
起動と停止
欠点
やるべきこと
参考記事公式ドキュメント
転載先:https://www.cnblogs.com/fanfan259/p/11526432.html