【发布时间】:2021-05-02 05:26:08
【问题描述】:
我正在使用 docker-compose(文件 1)构建一个应用程序,我想知道如何将主机 IP 地址传送到 docker-compose 文件。该应用程序由数据库、前端和后端组成。它的目的是我想从本地网络上的其他计算机访问我的应用程序。它在前端工作正常,但是当我想与后端通信时,它不再工作了。我怀疑这是因为前端正试图将数据发送到本地主机(对于本地网络上的另一台计算机来说,这不是正确的)。因此,我想直接在 docker-compose 文件中与前端应用程序通信主机的 IP 地址,以便它可以与后端通信!有什么想法吗?
文件 1
version: "3.7"
services:
db:
build:
context: ./database
command: --default-authentication-plugin=mysql_native_password --sql_mode=""
restart: always
cap_add:
- SYS_NICE # CAP_SYS_NICE
volumes:
- db_data:/var/lib/mysql
ports:
- ${MYSQL_PORT}:${MYSQL_PORT}
environment:
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_TCP_PORT: ${MYSQL_PORT}
env_file: ./.env
back:
depends_on:
- db
build:
context: ./backend
target: development
volumes:
- ./backend:/app
- /app/node_modules
restart: "no"
ports:
- ${BACKEND_PORT}:${BACKEND_PORT}
env_file: ./.env
front:
depends_on:
- back
- db
build:
context: ./frontend
target: development
stdin_open: true
volumes:
- ./frontend:/app
- /app/node_modules
restart: "no"
ports:
- ${FRONTEND_PORT}:${FRONTEND_PORT}
env_file: ./.env
volumes:
db_data: {}
这是我在前端环境中用于与后端通信的 api url,我将动态替换为主机 IP。
文件 2
const dev = {
...env,
apiUrl: "http://localhost:3000/api",
};
非常感谢您的帮助! 最好的
【问题讨论】:
标签: docker docker-compose ip host local-network