1: 2019-09-04 (水) 19:31:11 takatsuka[4] [5] | 現: 2019-09-04 (水) 19:37:34 takatsuka[4] [6] | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | 準備中 | + | LAMP 環境の docker-compose です。 |
- | * docker-compose.yml [#n8b21bed] | + | |
+ | ちょっとしたポイントとしては、以下な感じです。 | ||
+ | |||
+ | - webサーバーは、centos7 のイメージから自前で apache + PHP7.3 環境を構築しています。 | ||
+ | -- 使いそうなモジュールもとりあえず入れています。 | ||
+ | -- php.ini の設定も少々変更しています。 (web/added_php.ini) | ||
+ | -- xdebug も使える状態です。xdebug.remote_host で宛先を書き換えるだけでOK | ||
+ | -- composer もインストールしています。 | ||
+ | - db は MySQL ではなく MariaDb 使ってます。が、特に理由はありません。 | ||
+ | - phpMyAdmin も便利なので使えるようにしています。 | ||
+ | -- phpinfo() を 有効にしています。 | ||
+ | - ドキュメントルート と DB はホスト側フォルダをマウントして永続化しています。 | ||
+ | |||
+ | 不要なものは適宜消して docker-compose up すればいいだろう。という方針です。 | ||
+ | 極力普通に、まったく尖った仕様ではないと自分では思ってます。 | ||
+ | 以上、備忘録として。 | ||
+ | |||
+ | #contents | ||
+ | |||
+ | * docker-compose ファイル一覧 [#o24cab0e] | ||
+ | ├ .env | ||
+ | ├ docker-compose.yml | ||
+ | ├ db | ||
+ | │ └ conf.d | ||
+ | │ └ my.cnf | ||
+ | ├ phpmyadmin | ||
+ | │ └ config.user.inc.php | ||
+ | └ web | ||
+ | ├ added_php.ini | ||
+ | └ Dockerfile | ||
+ | |||
+ | ** .env [#s7065a67] | ||
+ | |||
+ | # web | ||
+ | WEB_PORT=10080 | ||
+ | |||
+ | # phpMyAdmin | ||
+ | PHPMYADMIN_PORT=10081 | ||
+ | |||
+ | # db | ||
+ | DB_PORT=13306 | ||
+ | DB_PASSWORD=pass | ||
+ | |||
+ | ** docker-compose.yml [#n8b21bed] | ||
version: '3' | version: '3' | ||
services: | services: | ||
+ | |||
web: | web: | ||
build: ./web | build: ./web | ||
Line 11: | Line 54: | ||
- ./volumes/web/:/var/www/html | - ./volumes/web/:/var/www/html | ||
- ./web/added_php.ini:/etc/php.d/added_php.ini | - ./web/added_php.ini:/etc/php.d/added_php.ini | ||
- | container_name: "lampp-web" | + | container_name: "lamp-web" |
+ | |||
db: | db: | ||
image: mariadb/server:10.4 | image: mariadb/server:10.4 | ||
environment: | environment: | ||
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD} | MYSQL_ROOT_PASSWORD: ${DB_PASSWORD} | ||
+ | MYSQL_ROOT_HOST: "%" | ||
+ | TZ: Asia/Tokyo | ||
ports: | ports: | ||
- ${DB_PORT}:3306 | - ${DB_PORT}:3306 | ||
Line 23: | Line 68: | ||
- ./db/conf.d/:/etc/mysql/conf.d | - ./db/conf.d/:/etc/mysql/conf.d | ||
- ./db/initdb/:/docker-entrypoint-initdb.d | - ./db/initdb/:/docker-entrypoint-initdb.d | ||
- | container_name: "lampp-db" | + | container_name: "lamp-db" |
+ | |||
phpmyadmin: | phpmyadmin: | ||
image: phpmyadmin/phpmyadmin:latest | image: phpmyadmin/phpmyadmin:latest | ||
- | links: | ||
- | - db | ||
ports: | ports: | ||
- ${PHPMYADMIN_PORT}:80 | - ${PHPMYADMIN_PORT}:80 | ||
Line 37: | Line 80: | ||
- PMA_PASSWORD=${DB_PASSWORD} | - PMA_PASSWORD=${DB_PASSWORD} | ||
volumes: | volumes: | ||
- | - /sessions | + | - /sessions |
- | container_name: "lampp-phpmyadmin" | + | - ./phpmyadmin/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php |
+ | container_name: "lamp-phpmyadmin" | ||
- | * .env [#s7065a67] | + | -- MYSQL_ROOT_HOST は、デフォルトが"%"のハズだけど何故かそうならない版の為に追加。 |
- | # web | + | ** web/added_php.ini [#h2ee6eec] |
- | WEB_PORT=10080 | + | memory_limit = -1 |
+ | upload_max_filesize = 16G | ||
+ | post_max_size = 16G | ||
+ | max_execution_time = 1200 | ||
+ | |||
+ | [Date] | ||
+ | date.timezone = "Asia/Tokyo" | ||
+ | |||
+ | [mbstring] | ||
+ | mbstring.internal_encoding = "UTF-8" | ||
+ | mbstring.language = "Japanese" | ||
+ | |||
+ | ; XDEBUG ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
+ | xdebug.remote_enable=1 | ||
+ | ; 192.168.1.2 ... | ||
+ | xdebug.remote_host=host.docker.internal | ||
+ | xdebug.remote_port=9000 | ||
+ | xdebug.remote_handler="dbgp" | ||
- | # phpMyAdmin | + | ** web/Dockerfile [#j80a33bf] |
- | PHPMYADMIN_PORT=10081 | + | FROM centos:centos7 |
+ | |||
+ | RUN yum -y update | ||
+ | |||
+ | # タイムゾーンを日本時間に設定 | ||
+ | RUN \cp -p -f /usr/share/zoneinfo/Japan /etc/localtime | ||
+ | |||
+ | # install apache2.4 | ||
+ | RUN yum -y install httpd | ||
+ | |||
+ | # install php73 | ||
+ | RUN yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm | ||
+ | RUN yum -y install --enablerepo=epel libedit libargon2 libzip libXpm libtiff libmcrypt fontconfig-devel libfreetype libpng15 liblzf | ||
+ | RUN yum -y install --disablerepo=* --enablerepo=remi,remi-php73 php php-mbstring php-pdo php-gd php-mcrypt php-mysqlnd php-pecl-redis php-pecl-xdebug php-opcache php-pecl-apcu | ||
+ | |||
+ | # composer インストール | ||
+ | RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ | ||
+ | && php composer-setup.php \ | ||
+ | && php -r "unlink('composer-setup.php');" \ | ||
+ | && mv composer.phar /usr/local/bin/composer | ||
+ | |||
+ | EXPOSE 80 | ||
+ | CMD ["httpd", "-D", "FOREGROUND"] | ||
- | # db | + | ** db/conf.d/my.cnf [#d2f2697d] |
- | DB_PORT=13306 | + | [mysqld] |
- | DB_PASS=rootpass | + | character-set-server=utf8mb4 |
+ | collation-server=utf8mb4_bin | ||
+ | |||
+ | [client] | ||
+ | default-character-set=utf8mb4 | ||
+ | |||
+ | ** phpmyadmin/config.user.inc.php [#i55bafe9] | ||
+ | <?php | ||
+ | |||
+ | // Maximum execution time = no limit | ||
+ | $cfg['ExecTimeLimit'] = 0; | ||
+ | |||
+ | // phpinfo enable | ||
+ | $cfg['ShowPhpInfo'] = true; |
(This host) = https://thinkridge.com