ディレクトリを作成しないでカレントディレクトリへ Laravel をインストールする方法
- プロジェクト名は指定しないで、
.
を指定する。
composer create-project --prefer-dist laravel/laravel . "5.5.*"
.
を指定する。composer create-project --prefer-dist laravel/laravel . "5.5.*"
Docker の nginx:latest (1.15.5) で SSL/TLS を使えるようにする最低限の Dockerfile を作りました – oki2a24 で最低限の SSL/TLS 設定を行いました。
今回は、それに加え、簡単な記述でセキュリティ、パフォーマンスを向上させる設定を追加していきます。
FROM nginx:latest RUN apt-get update && apt-get install -y \ openssl \ ssl-cert \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* COPY ./conf.d/ssl.conf /etc/nginx/conf.d/
server { listen 443 ssl; server_name localhost; ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; location / { root /usr/share/nginx/html; index index.html index.htm; } }
# Composer の情報を表示 docker run --rm -it -v $PWD:/app composer:latest composer # Comoser の実行場所がホストの指定場所となっているかを、共有場所の一覧を表示することで確認 docker run --rm -it -v $PWD:/app composer:latest ls -al
php:7.2-apache をビルドするときに、 DocumentRoot を設定していました。特に疑問に感じていませんでしたけれどもあるとき、さまざまな Docker イメージを見ていると設定は build 時ではなく、 run 時に環境変数で設定していることに気が付きました。
DocumentRoot も run 時に設定したいと思いました。
そうするためには、次の手順で実現できると思いました。
上記の方法のうち、 1. と 2. は簡単です。 3. が難しかったです><。
今回、応急処置的な一時しのぎ的なワークアラウンドではありますけれども、汎用的で Linux コマンドの勉強になりましたので、解決するまでの道筋を順番に記録に残していこうと思います。
[mysql] default-character-set=utf8mb4 [mysqld] character_set_server=utf8mb4 collation-server=utf8mb4_bin
FROM debian:stretch-slim
なイメージはこれで OK でした。
例えば、今回設定したのは次です。
FROM mysql:latest ARG TZ=UTC ENV TZ ${TZ} RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone COPY ./config-file.cnf /etc/mysql/conf.d/
${TZ} は、docker-compose.yml で定義しました。args と environment です。
${WORKSPACE_TIMEZONE} は、.env ファイルで定義しています。
services: php_apache: build: context: ./php_apache args: TZ: ${WORKSPACE_TIMEZONE} environment: - TZ=${WORKSPACE_TIMEZONE} ... 略 ...
From php:apache RUN apt-get update && apt-get install -y \ unzip \ zlib1g-dev \ && docker-php-ext-install \ zip \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN curl -s http://getcomposer.org/installer | php && \ mv composer.phar /usr/local/bin/composer
これが最低限必要なものを追加した Dockerfile と思いますが、ちょっと及び腰で念の為という気持ちで、利便性や、参考ページにあったものも一応追加したものが次となります。
echo "export PATH=${PATH}:/var/www/vendor/bin" >> ~/.bashrc && \
も無くてもよいと思う (未検証) が、一応入れた。From php:apache RUN apt-get update && apt-get install -y \ git \ unzip \ zlib1g-dev \ && docker-php-ext-install \ zip \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN curl -s http://getcomposer.org/installer | php && \ echo "export PATH=${PATH}:/var/www/vendor/bin" >> ~/.bashrc && \ mv composer.phar /usr/local/bin/composer
From php:apache RUN apt-get update && apt-get install -y \ libssl-dev \ openssl \ ssl-cert \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ && a2enmod ssl \ && a2ensite default-ssl