LEMPスタックに依存するアプリケーション用のDockerをセットアップしようとしています。この目的のために、Dockerを使ってNginx用に1つのコンテナ(PHP-FPM用、1つはMySQL用)を作成する予定です。DockerがNginx/PHP-FPM/Composer用に作成
これは、オンラインチュートリアルの基本的なイラストユースケースではうまくいきますが、私がユースケースに適用しようとすると、私は設計上の問題に苦しんでいます。
私のWebアプリケーションは、Composer for PHPに依存し、Gulp + BowerはCSS/JS依存関係に依存します(コンパイルや資産の最小化など)。
問題は、アプリケーションをビルド(つまり、すべての依存関係をインストールし、いくつかのgulpタスクを実行する)し、このビルドの結果をNginxとPHP-FPMの両方のコンテナに提供する必要があるということです。ここで
は、私がこれまでになってきたものです:ドッキングウィンドウ-compose.yml:
version: "3"
networks:
database:
server:
volumes:
mysql-data:
source:
services:
php:
build: .
volumes:
- source:/app:ro
restart: always
networks:
- database
- server
depends_on:
- mysql
mysql:
image: mysql:5.7
volumes:
- mysql-data:/var/lib/mysql
restart: always
networks:
- database
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: test
MYSQL_PASSWORD: test
MYSQL_DATABASE: test
nginx:
image: nginx
volumes:
- source:/app:ro
restart: always
networks:
- server
depends_on:
- php
Dockerfile:
FROM php:7.1-fpm
WORKDIR /app
# Install dependencies
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
RUN apt-get update && apt-get install -y \
git \
nodejs \
zip
RUN curl -sL https://getcomposer.org/installer | php -- --install-dir /usr/bin --filename composer
# Get application dependencies
COPY composer.json ./
RUN composer install -o
COPY package.json gulpfile.js bower.json ./
RUN npm install
RUN npm run gulp
RUN npm run rev
# Copy application
COPY . ./
しかし、ドッカー初心者として、私はアプリケーションのビルド結果のボリュームに頼ることが妥当ではないか、ビルドのステップアプリケーションを実行しているコンテナの1つ。
ご協力いただきありがとうございます。
ニコラス