我遇到如下情况的docker-compose.yml文件
version: '3'
services:
database:
image: mcr.microsoft.com/mssql/server:2017-latest
environment:
- SA_PASSWORD=king@1234
- ACCEPT_EULA=Y
ports:
- "8110:1433"
container_name: app_db_con
api:
build:
context: /home/shubham/Employee/EmployeeBackEnd/
image: app-api:dev
ports:
- "8111:5001"
container_name: app_api_con
depends_on:
- database
web:
build:
context: /home/shubham/Employee/EmployeeFrontEnd/
image: app-ui:dev
ports:
- "8112:80"
container_name: app_web_con
depends_on:
- database
- api
我想访问 api 容器内的数据库容器ID作为参数。例如下面的代码中的args:
api:
build:
context: /home/shubham/Employee/EmployeeBackEnd/
image: app-api:dev
args:
- Database_Server: database_container_id
ports:
- "8111:5001"
container_name: app_api_con
depends_on:
- database
我不确定该如何实现。如果还有其他方法,请提供帮助。
谢谢
答案 0 :(得分:1)
默认情况下,使用docker-compose,每个容器均可通过其在撰写文件中定义的服务名称进行访问。
例如,如果您要从database
访问api
容器,则只需要使用其名称即可。您可以使用以下命令进行尝试:
$ docker container exec -ti [your_api_container] ping database
有关撰写网络的更多信息,请查看official doc。