docker compose使用错误文件夹中的入口点
我已经在这个问题上绞尽脑汁很久了 我会尽可能清楚地解释我现在的处境 我有两个不同的项目 第一个项目有这个docker compose使用错误文件夹中的入口点,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,我已经在这个问题上绞尽脑汁很久了 我会尽可能清楚地解释我现在的处境 我有两个不同的项目 第一个项目有这个docker compose.yml: 版本:“3.7” 服务: spaceflights后端数据库: 主机名:spaceflights数据库主机 图片:博士后 重新启动:始终 环境: POSTGRES_密码:jBmfXzQKEck8TQco POSTGRES_用户:太空飞行 POSTGRES_DB:太空飞行 spaceflights后端应用程序: 建造: 上下文:/应用程序 dockerfi
docker compose.yml
:
版本:“3.7”
服务:
spaceflights后端数据库:
主机名:spaceflights数据库主机
图片:博士后
重新启动:始终
环境:
POSTGRES_密码:jBmfXzQKEck8TQco
POSTGRES_用户:太空飞行
POSTGRES_DB:太空飞行
spaceflights后端应用程序:
建造:
上下文:/应用程序
dockerfile:dockerfile
主机名:spaceflights应用程序主机
图片:spaceflights/后端应用程序
工作目录:/home/node/spaceflights应用程序
卷数:
-“./文件系统:/home/node/spaceflights应用程序”
端口:
- 3000:3000
取决于:
-太空飞行后端数据库
以下是Dockerfile内容:
FROM node:latest
ENV COMPOSE_RPOJECT_NAME=spaceflights-frontend
RUN apt-get update && apt-get install -y --no-install-recommends \
nano \
screen \
htop \
bash \
dumb-init \
postgresql
# Entrypoint
COPY . /docker-files/
RUN chmod +x /docker-files/docker-entrypoint.sh
ENTRYPOINT ["/usr/bin/dumb-init", "--", "/docker-files/docker-entrypoint.sh"]
CMD ["bash", "-c", "node src/app.mjs"]
这是docker入口点。sh:
#/bin/bash
设置-euo管道故障
echo“安装软件包”
纱线安装
echo“设置数据库数据”
节点初始化/setup.mjs
执行官“$@”
文件夹结构为:
这个项目很有魅力,没有抱怨,一切都是一流的
我有第二个项目:
docker compose.yml
:
版本:“3.7”
服务:
太空飞行前端干线:
容器名称:spaceflights前端主
图片:太空飞行/前端主
建造:
上下文:/应用程序
dockerfile:dockerfile
环境:
反应应用程序主持人:流浪码头工人
反应应用程序端口:8080
反应应用程序API主机:流浪码头工人
反应应用程序API端口:3000
主机名:spaceflights前端应用程序
工作目录:/home/node/spaceflights应用程序
卷数:
-“./文件系统:/home/node/spaceflights应用程序”
端口:
- 8080:8080
Dockerfile:
FROM node:latest
RUN apt-get update && apt-get install -y --no-install-recommends \
nano \
bash
RUN yarn install
RUN yarn global add serve
CMD ["bash", "-c", "serve -l ${REACT_APP_PORT} -s build > /dev/null"]
这里没有docker entrypoint.sh
文件夹结构为:
停止并删除每个容器后,这意味着docker container ls
返回一个空列表并尝试运行这个家伙,出于我无法理解的原因,它从第一个项目执行docker entrypoint.sh
我尝试了多种方法:
- 使用
:它不会改变任何东西.env
- 使用
定义项目名称没有帮助docker compose-p…
- 删除
中的所有docker compose.yml
。还是不行容器名称
- 在每个项目中将
文件夹重命名为两种不同的内容。没什么好的docker
- 上述各项的各种组合
docker compose up-d--build
我在这里真的很糊涂,我只是不明白为什么它这么混乱。这些项目甚至不在同一个文件夹中(显然考虑到目录结构),我在docker
文件夹中运行docker compose up-d--build
任何帮助都将不胜感激
在某个时候,
docker compose.yml
是否同时指定了build:
和image:node
?如果您docker pull node:latest
从docker Hub获取当前版本,它会改进吗?感谢您的回答@DavidMaze,我实际上在这个周末找到了解决方案。结果表明,当您指定image:
时,意味着您希望使用此名称构建图像,而不是使用此图像。我必须再次提取节点图像,然后重新编辑Dockerfile。我将发布我的解决方案的完整解释,这样可以帮助其他人。尽管如此,我认为你的回答会给我一个解决办法。