Как запустить php-fpm в docker-compose.yml? - PullRequest
0 голосов
/ 13 сентября 2018

Я пытался собрать контейнер, используемый docker-compose. Поэтому я написал dockerfile и docker-compose.yml следующим образом:

dockerfile

FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -y expect
RUN apt-get -y install software-properties-common 
RUN apt-add-repository ppa:ondrej/php
RUN apt-get -y install php7.1 php7.1-fpm 
RUN apt-get install php7.1-mysql
RUN apt-get -y install nginx
RUN apt-get -y install vim
COPY default /etc/nginx/sites-available/default
COPY www.conf /etc/php/7.1/fpm/pool.d/www.conf
COPY test /var/www/html/test
CMD service php7.1-fpm start && nginx -g "daemon off;"

докер-compose.yml

version: '3'

services:
   web:
     build: 
       context: .
       dockerfile: Dockerfile
     ports:
       - "3011:80"

Когда я запускаю следующую команду, php7.1-fpm запускается успешно.

docker-compose build
docker-compose up --force-recreate -d

Но я хочу переместить CMD из dockerfile в docker-compose, поэтому я изменил файл следующим образом:

докер-compose.yml

command: service php7.1-fpm start && nginx -g "daemon off;"

Но на этот раз php7.1-fpm не работает.

Как исправить эту проблему, чтобы я мог запустить php7.1-fpm в docker-compose.yml?

1 Ответ

0 голосов
/ 28 октября 2018
  • вы не можете использовать service php7.1-fpm start в своем Dockerfile, потому что контейнер - это просто процесс, а не реальная виртуальная машина, основной процесс отключен, а другие не будут отключены ни
  • Докер предлагает вам разделить их на разные контейнеры, php-fpm, nginx, один контейнер для одного изображения
  • Решение:
    Докер / PHP-FPM / Dockerfile FROM php:7.2-fpm RUN docker-php-ext-install pdo pdo_mysql mbstring докер-compose.yml: version: '2.1' services: nginx: image: nginx:latest ports: - 8001:80 volumes: - ./:/app # nginx configs - ./docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf php-fpm: build: ./docker/php-fpm volumes: - ./:/app php-composer: restart: 'no' image: composer volumes: - ./:/app command: install nodejs: restart: 'no' image: node:8.9 volumes: - ./:/app command: /bin/bash -c "cd /app && npm install && npm run prod" networks: default:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...