暴露在gitlab ci docker镜像中运行的服务器

时间:2018-02-07 10:15:37

标签: docker gradle gitlab gitlab-ci gretty

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

但现在我希望用户在浏览器中测试网络应用。我的想法:使用docker镜像创建另一个gitlab-ci作业(手动启动),利用grettys appStart启动一个tomcat实例并让它运行,以便用户可以从浏览器访问它。

问题:如何将docker镜像内的服务器暴露给外界?如果你独立运行一个docker镜像,我发现了如何做到这一点的提示,但是当使用带有gitlab-ci的docker时,我找不到如何做到这一点。

或者有更好的方法来做我尝试的事情吗?

我的简单gitlab-ci.yml:

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

2 个答案:

答案 0 :(得分:1)

  

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

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

  1. -p传递给docker run,将服务器端口发布到主机。更多信息是here

    docker run -p hostPort:containerPort ...
    
  2. --network host传递给docker run,使用Docker的“主机网络”。更多信息是here

    docker run --network host ...     
    

答案 1 :(得分:0)

为什么你可以做到这些工作并不打算长时间运行。 Luckil Gitlab有一个名为Review Apps的功能,你应该研究一下这个名为Clusters的新功能。