首页 > 解决方案 > 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


标签: phpdocker

解决方案


如果没有更多关于您的代码逻辑的知识,我不确定我是否可以完全通过这个答案让它运行。但我想我可以给出一个抽象的清单。

由于您的 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-serviceAPI 的任何 AJAX 调用都将被调用到yourdomain.com:5001

website服务内部,它可以product-serivce使用localhost:5001. 但是在用户浏览器中,任何 AJAX 调用都将被计为外部调用,因此对该服务的任何 AJAX 调用都必须配置为yourdomain.com:5001


推荐阅读