如何从docker
我曾尝试使用process.env.port
来获取环境中的端口变量,但是当我构建docker时它没有任何改变。如果我有两个像这样的服务码头,如何从mongo获得端口
services:
app:
image: lostproperty
container_name: lost-property
ports:
- "127.0.0.1:3100:3000"
environment:
- port :"3100"
- API_URL:"http://localhost:3000/lost-property/"
depends_on:
- mongo
volumes:
- ../app:/var/www/html
stdin_open: true
tty: true
restart: always
mongo:
image: mongo
ports:
- "127.0.0.1:27018:27017"
volumes:
- ./data:/data/db
environment:
- MONGO_URL:"mongodb://localhost:27017/lost-property"`
回答如下:
您可以通过将其包含在docker-compose文件中,确保两个容器都能够使用其容器名称相互通信。这种方式lost-property可以通过mongodb:mongo:27017与mongo交谈
networks:
default:
external:
name: my-network
你可能想在与docker-compose.yml相同的目录中创建一个.env文件。在.env中使用像
MONGO_PORT=27017
MONGO_URL=mongodb://mongo:27017/lost-property
API_URL=http://localhost:3000/lost-property/
PORT=3100
在你的docker-compose文件中使用环境配置
services:
app:
environment:
image: lostproperty
container_name: lost-property
ports:
- ${PORT}:${PORT}
environment:
- PORT
- API_URL
- MONGO_PORT
- MONGO_URL
depends_on:
- mongo
volumes:
- ../app:/var/www/html
stdin_open: true
tty: true
restart: always
mongo:
image: mongo
ports:
- ${MONGO_PORT}:${MONGO_PORT}
volumes:
- ./data:/data/db
environment:
- MONGO_URL
将VALUE用于环境部件,将$ {VALUE}用于其他任何地方,例如端口。然后在你的app.js或index.js或任何你可以得到的端口和网址
process.env.MONGO_PORT
process.env.MONGO_URL
process.env.PORT
process.env.API_URL
你可以输入
docker-compose config
在运行docker-compose之前查看配置是什么样的
此外,如果您正在使用类似express的api服务器运行,则需要使用0.0.0.0作为要侦听的IP,而不是127.0.0.1如果您希望能够从容器及其网络外部访问/测试它
如何从docker
我曾尝试使用process.env.port
来获取环境中的端口变量,但是当我构建docker时它没有任何改变。如果我有两个像这样的服务码头,如何从mongo获得端口
services:
app:
image: lostproperty
container_name: lost-property
ports:
- "127.0.0.1:3100:3000"
environment:
- port :"3100"
- API_URL:"http://localhost:3000/lost-property/"
depends_on:
- mongo
volumes:
- ../app:/var/www/html
stdin_open: true
tty: true
restart: always
mongo:
image: mongo
ports:
- "127.0.0.1:27018:27017"
volumes:
- ./data:/data/db
environment:
- MONGO_URL:"mongodb://localhost:27017/lost-property"`
回答如下:
您可以通过将其包含在docker-compose文件中,确保两个容器都能够使用其容器名称相互通信。这种方式lost-property可以通过mongodb:mongo:27017与mongo交谈
networks:
default:
external:
name: my-network
你可能想在与docker-compose.yml相同的目录中创建一个.env文件。在.env中使用像
MONGO_PORT=27017
MONGO_URL=mongodb://mongo:27017/lost-property
API_URL=http://localhost:3000/lost-property/
PORT=3100
在你的docker-compose文件中使用环境配置
services:
app:
environment:
image: lostproperty
container_name: lost-property
ports:
- ${PORT}:${PORT}
environment:
- PORT
- API_URL
- MONGO_PORT
- MONGO_URL
depends_on:
- mongo
volumes:
- ../app:/var/www/html
stdin_open: true
tty: true
restart: always
mongo:
image: mongo
ports:
- ${MONGO_PORT}:${MONGO_PORT}
volumes:
- ./data:/data/db
environment:
- MONGO_URL
将VALUE用于环境部件,将$ {VALUE}用于其他任何地方,例如端口。然后在你的app.js或index.js或任何你可以得到的端口和网址
process.env.MONGO_PORT
process.env.MONGO_URL
process.env.PORT
process.env.API_URL
你可以输入
docker-compose config
在运行docker-compose之前查看配置是什么样的
此外,如果您正在使用类似express的api服务器运行,则需要使用0.0.0.0作为要侦听的IP,而不是127.0.0.1如果您希望能够从容器及其网络外部访问/测试它