【问题标题】:One Docker-container runned instead of other. Docker-compose运行一个 Docker 容器而不是其他容器。码头工人组成
【发布时间】:2020-01-20 12:16:38
【问题描述】:

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:
      - 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_test 的数据。 特别是,我通过 docker inspect docker_db 看到了它。它返回 docker_test 的环境变量。 并在服务器上为 docker_test(而不是 docker_db)上传环境变量和其他设置

项目结构:

【问题讨论】:

  • 不清楚你到底在问什么。

标签: docker docker-compose


【解决方案1】:

我认为它们两个图像都是从同一个 dockerfile 构建的,因为您没有在服务下指定 dockerile。 试试这个

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

【讨论】:

  • 更新问题并添加你的项目目录结构
  • 我做了一个改变回答,现在试试代码,告诉我会发生什么
  • 把你的问题再解释清楚。另外,请确保在执行 docker-compose up 之前您正在执行 docker-compose build
  • 在原始问题的docker-compose.yml 文件中,两个服务有不同的build: 上下文目录,所以这应该不是问题。
  • mybad,我改了,。现在尝试更新的文件。确保在构建之前先构建
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-23
  • 2020-07-05
  • 2020-03-31
  • 1970-01-01
相关资源
最近更新 更多