如何使用docker运行underow java app

时间:2017-01-14 08:01:28

标签: java curl docker undertow

我正在使用docker来处理我的应用程序。

我能够做到以下

  1. 创造胖罐

  2. 创建docker image
  3. 运行该泊坞窗图片

  4. 在8080上市并在Docker文件中添加了EXPOSE 8080

  5. 从INSIDE the CONTAINER卷曲我的网址,卷曲localhost:8080 / sample

  6. 我正面临一些奇怪的问题,

    我的撰写文件是

    version: '2'
    services:
      login:
        image: my-image
        ports:
         - "8080:8080"
    

    8080端口我无法访问该URL。

    我的Dockerfile

    FROM openjdk:8-jre
    COPY ./target/*-with-dependencies.jar /jars/service-jar.jar
    EXPOSE 8080
    CMD java  -cp /jars/service-jar.jar my.Main 
    

    My Undertow Listener

    Undertow server = Undertow.builder()
            .addHttpListener(8080, "localhost")
            .setHandler(path)
            .build();
    

    我在google中找到了一些无法使其正常工作的链接

    http://lists.jboss.org/pipermail/undertow-dev/2014-October/000999.html

2 个答案:

答案 0 :(得分:2)

通过监听ip到docker容器的ip地址来解决问题。

我改变了我的听众

func userInfo() {

    let dbRef = FIRDatabase.database().reference()
    let stRef = FIRStorage.storage().reference()

    dbRef.child("users/\(userBiD!)").observeEventType(.Value, withBlock: { snapshot in

        let name = snapshot.value!["firstname"] as! String
        let profileImage = snapshot.value!["profilePic"] as! String
        let receivePostRequest = snapshot.value?["receivePostRequest"]

        self.nameLabel.text = name
        self.dbUserProfilePic(self.profilePhotoImageView, imageLink: profileImage)

        let receivePost = snapshot.childSnapshotForPath("receivePostRequest")

        let tags = receivePost.childSnapshotForPath("tags")

        for child in tags.children {
            // NEW
            var trueValues: [Bool] = []

            if child.value == true {
                trueValues.append(child.key)
            }
            // NEW
        }

    })

}

现在工作正常。

  

"外部IP完全不同。总结一下你   必须将主机服务器作为内部IP设置为   由docker"

创建的iptables

我错过了在我的参考链接(http://lists.jboss.org/pipermail/undertow-dev/2014-October/000999.html)中阅读此行。

我的老板发现了这一点。

答案 1 :(得分:0)

你是如何运行泊坞窗图像的? 你在发布端口吗?

class Home extends MY_base{
      public function __construct()
      {
              parent::__construct();
              // Here you have access to load_header() function
      }

}

Related documentation