Как сделать сервисы php и composer доступными из контейнера Ubuntu - PullRequest
0 голосов
/ 05 марта 2020

Мне нужен контейнер ubuntu, работающий с php и composer, доступный из с в контейнере. Из документации docker кажется, что Compose предоставляет способ запуска контейнеров вместе с несколькими службами, ниже приведен фрагмент из документации docker, в котором упоминается о compose

Compose - инструмент для определение и запуск нескольких контейнеров Docker приложений. С Compose вы используете файл YAML для настройки служб вашего приложения. Затем с помощью одной команды вы создаете и запускаете все сервисы из вашей конфигурации.

Вот мой docker-compose.yml file

version: '3'
services:
  web:
    image: ubuntu
    links: 
      - db
      - kompoza
      - web_server
  db:
    image: mysql
    ports:
    - "3309:3306"
    environment:
    - MYSQL_ROOT_PASSWORD=password
    - MYSQL_USER=user
    - MYSQL_PASSWORD=password
    - MYSQL_DATABASE=demodb
  kompoza:
    image: composer
  web_server:
    image: php

После запуска docker-compose up все сервисы запускаются, и сервисы kompoza и web_server мгновенно завершают работу с error code 0

container first screen enter image description here

Мне нужно иметь возможность запускать php --version и composer --version внутри контейнера ubuntu

Я уже знаю, что могу установить все необходимое мне программное обеспечение в один контейнер, используя Dockerfile, например,

FROM ubuntu:latest
ARG DEBIAN_FRONTEND=noninteractive
ENV TERM=xterm
RUN apt-get update

RUN apt-get install -y curl wget php

# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

Но я предпочитаю делать это services способом, так как я считаю, что определение услуг дает мне больше контроля

Как мне этого добиться? и еще один вопрос, почему 2 службы вышли, но mysql не вышли?

...