我有一个NodeJS应用程序,我想要docker-size。
该应用程序包含两个部分:
服务器部分,运行正在从数据库获取数据的API。它在端口3000上运行;
客户端部分,它正在从服务器部分调用API端点。它正在端口8080上运行;
有了这个,我的客户端部分有一个名为“ server_address”的变量,其值为“ localhost:3000”。但事实是,两个项目都应在单独的Dockerimage
文件中按docker大小放置,并在一个docker-compose.yml
文件中合并。
因此由于某些原因,我必须通过docker-compose.yml
文件运行docker容器。那么有可能以某种方式连接这些东西并将服务器地址从dockerfile外部传递到NodeJS项目吗?
docker-composer.yml
version: "3"
services:
client-side-app:
image: my-client-side-docker-image
environment:
- BACKEND_SERVER="here we need to enter backend server"
ports:
- "8080:8080"
server-side-app:
image: my-server-side-docker-image
ports:
- "3000:3000"
两个 Dockerfile 都像这样:
FROM node:8.11.1
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["npm", "run", "dev"]
通过拥有这些文件,我很担心:
BACKEND_SERVER
吗?如果是的话,该怎么做?我不是指Dockerimage
文件,而是项目本身吗?答案 0 :(得分:4)
像这样在node.js代码中使用process.env
process.env.BACKEND_SERVER
在docker-compose文件中提及您的变量。
version: "3"
services:
client-side-app:
image: my-client-side-docker-image
environment:
- BACKEND_SERVER="here we need to enter backend server"
ports:
- "8080:8080"
server-side-app:
image: my-server-side-docker-image
ports:
- "3000:3000"