Мне нужен контейнер 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
Мне нужно иметь возможность запускать 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 не вышли?