一个Docker容器运行,而不是另一个。Docker compose
Docker-compose.yml:一个Docker容器运行,而不是另一个。Docker compose,docker,docker-compose,Docker,Docker Compose,Docker-compose.yml: version: '3' services: psql: container_name: docker_db build: database/ image: andrey1981spb/docker_db webapp: container_name: docker_test build: src/ image: andrey1981spb/docker_test depends_on:
version: '3'
services:
psql:
container_name: docker_db
build: database/
image: andrey1981spb/docker_db
webapp:
container_name: docker_test
build: src/
image: andrey1981spb/docker_test
depends_on:
- psql
psql的Dockerfile:
FROM postgres:latest
ENV POSTGRES_DB_PORT : "5432"
ENV POSTGRES_USER dreamwhite
ENV POSTGRES_PASSWORD Password2020#
ENV POSTGRES_DB test_psql
EXPOSE 5432
wewapp的Dockerfile:
FROM tomcat:9-jre8-alpine
ENV PATH_TOMCAT_USERS /usr/local/tomcat/conf/
ENV PATH_MANAGER /usr/local/tomcat/webapps/manager/
ADD config/tomcat-users.xml /usr/local/tomcat/conf/tomcat-users.xml
ADD config/context.xml /usr/local/tomcat/webapps/manager/META-INF/context.xml
ADD test.war /usr/local/tomcat/webapps/ROOT.war
EXPOSE 8080
CMD ["catalina.sh","run"]
所有2个容器都成功运行。
但是容器docker_db包含来自docker_测试的数据。
特别是docker inspect docker_db。它返回docker_测试的环境变量。
并在服务器上上载docker_测试的环境变量和其他设置(而不是docker_db)
项目结构:
我认为这两个映像都是从同一个dockerfile生成的,因为您没有在服务下指定dockerfile。 试试这个
更新问题并添加项目的目录结构I对答案进行了更改,请立即尝试代码并告诉我发生了什么请再次清楚地解释您的问题。另外,在执行docker compose之前,请确保您正在执行docker compose构建。在原始问题的
docker compose.yml
文件中,这两个服务具有不同的build:
context目录,因此这不应该是问题。mybad,我更改了它,。现在尝试更新的文件。确保在完成之前先进行构建
version: '3'
services:
psql:
container_name: docker_db
build:
context: .
dockerfile: ./database/Dockerfile
image: andrey1981spb/docker_db
webapp:
container_name: docker_test
build:
context: .
dockerfile: ./src/Dockerfile
image: andrey1981spb/docker_test
depends_on:
- psql