1: 2019-09-04 (水) 19:31:11 takatsuka |
現: 2019-09-04 (水) 19:37:34 takatsuka |
- | 準備中 | + | 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 |
| - ./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 |
| - ./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 |
| - 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; |