0

我有一个使用 gradle/gretty 和 gitlab-ci(在我自己的服务器上运行 gitlab)和 docker 映像构建和测试的 Web 应用程序。这适用于单元测试。

但现在我希望用户在浏览器中测试 Web 应用程序。我的想法:使用 docker 映像创建另一个 gitlab-ci 作业(手动启动),该映像利用 grettys appStart 启动一个 tomcat 实例并使其保持运行状态,以便用户可以从浏览器访问它。

问题:如何将 docker 镜像中的服务器暴露给外界?如果您独立运行 docker 映像,我发现了如何做到这一点的提示,但在将 docker 与 gitlab-ci 一起使用时,我发现了如何做到这一点。

还是有更好的方法来做我尝试的事情?

我的简单 gitlab-ci.yml:

runServer:
  image: java:8-jdk
  script:
    - ./gradlew appStart
  when: manual
4

2 回答 2

1

如何将 docker 镜像中的服务器暴露给外界?

这可以通过两种方式完成。它们使容器中的服务器端口在主机上可供外界访问:

  1. 通过传递给主机将服务器的端口发布-pdocker run. 更多信息在这里

    docker run -p hostPort:containerPort ...
    
  2. 使用 Docker 的“主机网络”传递--network hostdocker run. 更多信息在这里

    docker run --network host ...     
    
于 2018-02-13T01:16:58.263 回答
0

为什么你可以这样做,这些工作并不意味着运行很长时间。Luckil Gitlab 有一个叫做Review Apps的特性,你应该研究一下这个特性和一个叫做Clusters的新特性。

于 2018-02-12T21:44:07.067 回答