Docker Compose使用域而不是本地主机

时间:2019-02-22 04:51:51

标签: php docker

对不起,我通常是docker和Web开发的新手,但我制作了基本的docker compose服务器,该服务器托管我的本地PHP文件并显示一些文本。它可以与本地主机正常工作,但是我购买了一些域,并且想知道如何将连接本地主机更改为域,以便任何人都可以连接到该主机。我的IP已经为外部连接设置了,并且可以在我的ssh服务器上使用,所以我不需要这样做。我尝试查找时似乎找不到任何结果。因此,我只需要知道在docker撰写文件或设置中要进行哪些更改即可改为进入域。

这是我的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


1 个答案:

答案 0 :(得分:1)

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

由于您的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 API。但是从用户浏览器来看,任何AJAX调用都将被计为外部调用,因此对此服务的任何AJAX调用都必须配置为yourdomain.com:5001