Docker 如何从ubuntu容器访问php和composer服务
我需要一个运行php和composer的ubuntu容器。从docker文档来看,Compose似乎提供了一种在多个服务旁边运行容器的方法,下面是docker文档中提到Compose的一个片段 Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用YAML文件来配置应用程序的服务。然后,只需一个命令,就可以从配置中创建并启动所有服务 这是我的Docker 如何从ubuntu容器访问php和composer服务,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,我需要一个运行php和composer的ubuntu容器。从docker文档来看,Compose似乎提供了一种在多个服务旁边运行容器的方法,下面是docker文档中提到Compose的一个片段 Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用YAML文件来配置应用程序的服务。然后,只需一个命令,就可以从配置中创建并启动所有服务 这是我的docker-compose.yml文件 version: '3' services: web: i
docker-compose.yml文件
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\u服务器
服务会立即退出,并显示错误代码0
我需要能够在ubuntu容器中运行php--version
和composer--version
我已经知道,我可以使用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
但是我更喜欢用服务的方式来做,因为我相信定义服务会给我更多的控制权
我如何做到这一点?还有一个问题,为什么这两个服务退出了,而mysql没有退出?仅仅运行一个简单的php
解释器并没有什么作用;正如你所说,它将立即退出。您需要编写一个自定义的Dockerfile
——它可以是来自php的,复制应用程序代码中的,然后通过Compose运行生成的图像。@DavidMaze您所说的不清楚。如果你能给我一个更详细的解释,我会很有帮助的。