いい感じにlaravel + Vue のdockerコンテナを作りたい!

2020年3月2日月曜日

Docker laravel PHP Vue.js

t f B! P L
laravel で Vue.js を使用できるようなdockerコンテナを起動する Docker ファイルを作りました。
これでたぶん大丈夫なはず・・・
説明はそのうち追記するかもしれない。
Docker上で動作しているので、npm install を実行するときは以下のようにする必要があります。
npm install --no-bin-links

docker-compose.yml

version: '3'

services:
  app:
    build: .
    image: sample_app
    container_name: sample_app
    ports:
      - "3000:80"
    volumes:
      - ..:/var/www/html
      - ./php.ini:/usr/local/etc/php/php.ini
  db:
    image: mysql:8.0
    container_name: mysql8.0_db
    ports:
      - "3306:3306"
    volumes:
      - "dbdata:/var/lib/mysql"
      - ./my.cnf:/etc/mysql/conf.d/my.cnf
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: sample_db
      MYSQL_USER: sample_user
      MYSQL_PASSWORD: password
      TZ: 'Asia/Tokyo'
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
volumes:
  dbdata:

Dockerfile

FROM php:7.4-apache

RUN cp -p /usr/share/zoneinfo/Japan /etc/localtime

RUN apt-get update
RUN apt-get install -y build-essential git libzip-dev unzip
RUN docker-php-ext-install zip pdo_mysql
RUN pecl install xdebug docker-php-ext-enable xdebug

COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
COPY --from=node:latest /usr/local/bin/ /usr/local/bin/
COPY --from=node:latest /usr/local/lib/node_modules /usr/local/lib/node_modules

RUN a2enmod rewrite


php.ini

[PHP]

[Date]
date.timezone = "Asia/Tokyo"

[xdebug]
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_port=9000
xdebug.remote_host=host.docker.internal
xdebug.remote_log=/tmp/xdebug.log
xdebug.var_display_max_children = 1280
xdebug.var_display_max_data = 10240
xdebug.var_display_max_depth = 100

php.ini

[mysqld]
# character set / collation
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci

# timezone
default-time-zone = SYSTEM
log_timestamps = SYSTEM

# MySQL8 caching_sha2_password to mysql_native_password
default-authentication-plugin = mysql_native_password

# Binary Log
#server-id = 01
#log-bin = /var/log/mysql/mysql-bin.log
#binlog-ignore-db = mysql
#binlog-format = ROW
#expire_logs_days = 7

# Error Log
log-error = /var/log/mysql/mysql-error.log

# Slow Query Log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 5.0
log_queries_not_using_indexes = 0

# General Log
general_log = 1
general_log_file = /var/log/mysql/mysql-query.log

[mysql]
default-character-set = utf8mb4

[client]
default-character-set = utf8mb4

このブログを検索

QooQ