php - Docker Compose 使用域而不是本地主机
问题描述
抱歉,我对 docker 和 web 开发一般来说是全新的,但我制作了基本的 docker compose 服务器来托管我的本地 PHP 文件并显示一些文本。它适用于本地主机,但我购买了一些域,并且想知道如何从连接到 localhost 更改为域,以便任何人都可以连接到它。我的 IP 已经设置为外部连接并且适用于我的 ssh 服务器,所以我不需要这样做。当我尝试查找时,我似乎无法找到任何结果。因此,我只需要知道在我的 docker compose 文件或设置中要更改哪些内容即可改为使用域。
这是我的 docker-compose 文件:
services:
product-service:
build: ./product
volumes:
- ./product:/usr/src/app
ports:
- 5001:80
website:
image: php:apache
volumes:
- ./website:/var/www/html
ports:
- 5000:80
depends_on:
- product-service
解决方案
如果没有更多关于您的代码逻辑的知识,我不确定我是否可以完全通过这个答案让它运行。但我想我可以给出一个抽象的清单。
由于您的 docker-compose 配置,端口 5001、5000 已经对 localhost 开放。如果这些端口已配置为向外部网络开放,则您已经可以键入 yourdomain.com:5000 来访问它。
如果您只想通过键入yourdomain.com
(不带端口)进行访问。我假设您的website
服务会为它服务:
- 打开端口
80
并将其与80
服务的端口连接website
:
website:
image: php:apache
volumes:
- ./website:/var/www/html
ports:
- 80:80
depends_on:
- product-service
- 确保对
product-service
API 的任何 AJAX 调用都将被调用到yourdomain.com:5001
:
在website
服务内部,它可以product-serivce
使用localhost:5001
. 但是在用户浏览器中,任何 AJAX 调用都将被计为外部调用,因此对该服务的任何 AJAX 调用都必须配置为yourdomain.com:5001
推荐阅读
- c - 在具有二维数组的程序中调试 SIGABRT 错误
- sas - 按 ID 在多行上对 SAS 中的成功进行分组,其中至少 1 次成功算作成功
- node.js - typedi + fastify - 异步初始化服务
- javascript - 猫鼬检查 id 是否存在,但该 id 嵌套在数组中
- swift - Swift 和 Curl 和 SAML
- r - 使用 != 和 == 在 filter() 中不匹配
- hybris - 如何从 hybris 的本地化 .properties 文件中向属性添加参数?
- google-bigquery - 如何使用标准 SQL 删除 BigQuery 中某个字符之后的所有字符?
- django - 使用请求模块时使用请求时出现 503 错误
- c# - 从 C# 创建 dbf 文件 - DateTime 字段