我想爲我的應用程序依賴LEMP堆棧設置Docker。爲此,我計劃使用Docker組合來爲Nginx生成一個容器,一個用於PHP-FPM,一個用於MySQL。Docker組合爲Nginx/PHP-FPM /作曲家
這對於在線教程中的基本插圖用例非常有效,但是當我嘗試將其應用於我的用例時,我遇到了一個設計問題。爲了給出一點上下文,我的web應用程序依賴於Composer for PHP依賴性和Gulp + Bower for CSS/JS依賴性(以及LESS編譯,資產最小化等)。
問題是我需要構建應用程序(即安裝所有依賴項並運行一些吞吐任務),並將此構建的結果提供給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 . ./
然而,由於碼頭工人初學者,我不確定依靠捲來構建應用程序的結果還是構建步驟是正確的運行應用程序的其中一個容器的一部分。
在此先感謝您的任何幫助或建議!
薩科