我希望能够在两个容器中运行两个独立的应用程序 - 每个独立应用程序一个。然后,这两个应用程序应该能够与将容纳MongoDB的第3个容器进行通信。
我本地计算机上的文件夹结构
/Users/me/Dev: Dockerfile, docker-compose.yml
/Users/me/Dev/App1: with source code and package.json for app1
/Users/me/Dev/App2: with source code and package.json for app2
/Users/me/Dev/data/db: I wanna keep datafile for Mongo
dockerfile - 老实说,对我来说这两个应用程序重复两次也不合适。 (这是我第一次使用docker所以我还不熟悉如何为我的场景最好地准备Dockerfile)
FROM node:8.9.1
WORKDIR ./app1/
COPY ./package.json ./app1/
RUN npm install
CMD npm start
COPY ./app1/ ./app1/
EXPOSE 8081
#
FROM node:8.9.1
WORKDIR ./app2/
COPY ./package.json ./app2/
RUN npm install
CMD npm start
COPY ./app2/ ./app2/
EXPOSE 8082
搬运工-compose.yml
version: '2'
services:
app1:
build: .
volumes:
- .:/app1
ports:
- "8082:8082"
links:
- mongo
depends_on:
- mongo
# app2:
# build: .
# volumes:
# - .:./app2
# ports:
# - "8081:8081"
# links:
# - mongo
# depends_on:
# - mongo
mongo:
image: mongo:3.4.10
volumes:
- './dev/data/db:/data/db'
ports:
- "27017:27017"
几个问题: 以docker-compose构建为例,我得到了 - 错误:服务' app1'无法构建:COPY失败:stat /var/lib/docker/tmp/docker-builder287108072/package.json:没有这样的文件或目录
即使我尝试了多种方式在Dockerfile和d-compose中提供路径,我仍然不相信这会起作用。
所以我需要一些关于如何在我的主DEV文件夹中准备Dockerfile和docker compose的指导(如上所述),以便docker将在同一个docker网络上启动3个容器(app1,app2,mongo)进行通信彼此。
答案 0 :(得分:1)
路径需要先用文件夹路径替换
用
更正COPY ./App1/package.json ./app1 /
COPY ./App2/package.json ./app2 /
但这看起来错误的做法。 Folow bellow步骤创建docker镜像并使用docker-compose.yml进行部署,就像mongo image一样,您必须创建自己的图像并使用compose运行它们。
转到App1文件夹并创建Dockerfile
<强> Dockerfile 强>
FROM node:8.9.1
WORKDIR ./app1/
COPY ./package.json ./app1/
RUN npm install
CMD npm start
COPY ./app1/ ./app1/
EXPOSE 8081
使用
创建泊坞窗图像docker build -t app1Image。
转到App2文件夹并创建Dockerfile
<强> Dockerfile 强>
FROM node:8.9.1
WORKDIR ./app2/
COPY ./package.json ./app2/
RUN npm install
CMD npm start
COPY ./app2/ ./app2/
EXPOSE 8081
使用
创建泊坞窗图像docker build -t app1Image。
在Dev文件夹
中创建docker-compose.yml<强>搬运工-compose.yml 强>
version: '2'
services:
app1:
image: app1Image
ports:
- 8082:8082
links:
- mongo
depends_on:
- mongo
app2:
image: app2Image
ports:
- 8081:8081
links:
- mongo
depends_on:
- mongo
mongo:
image: mongo:3.4.10
ports:
- 27017:27017
volumes:
- './dev/data/db:/data/db'
links:
- mongo
depends_on:
- mongo
使用docker-compose运行应用
docker-compose up -d