CakePHP環境つくるやつ
つくるだけなので要所のみ
Dockerfile
- sedのデリミタは
/
以外も使えるんですね - composer早くするやつも入れた
FROM php:7.2-apache
ENV APACHE_DOCUMENT_ROOT /var/www/html/app/webroot
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf \
&& sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf \
&& a2enmod rewrite
RUN apt-get update && apt-get install -y \
libicu-dev \
zip \
unzip \
&& docker-php-ext-install -j$(nproc) intl \
&& docker-php-ext-install -j$(nproc) pdo_mysql
RUN ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
COPY . /var/www/html
ENV COMPOSER_ALLOW_SUPERUSER 1
COPY --from=composer:1.7 --chown=www-data:www-data /usr/bin/composer /usr/bin/composer
RUN composer config -g repos.packagist composer https://packagist.jp
RUN composer global require hirak/prestissimo
docker-compose exec web composer create-project --prefer-dist --no-interaction cakephp/app:3.6.* ./app
CREATE DATABASE qa_app;
use qa_app;
CREATE TABLE `answers` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`question_id` int(10) unsigned NOT NULL,
`user_id` int(10) unsigned NOT NULL,
`body` varchar(255) NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `questions` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(10) unsigned NOT NULL,
`body` varchar(255) NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(16) NOT NULL,
`password` varchar(255) NOT NULL,
`nickname` varchar(32) NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;