簡體   English   中英

docker容器中的Akka遠程

[英]Akka remote in docker container

我面臨的困惑是,如何設置正確的配置才能訪問部署在Docker容器中的akka​​應用程序。 盡管我正在運行virtualbox ubuntu VM,但是我希望能夠在轉發VM主機上的端口之前先從此VM訪問容器。 application.conf:

akka {
  actor {
    provider = remote
  }
  remote {
    enabled-transports = ["akka.remote.netty.tcp"]
    netty.tcp {
      hostname = ${?HOSTNAME}       # what should it be? 0.0.0.0 or the assigned docker one like 172.17.0.x but unknown in advance
      port = ${?PORT}               # 800

      bind-hostname = ${?BIND_HOSTNAME} # 127.0.0.1 ?
      bind-port = ${?BIND_PORT}         # 800 ? xxxx ?

      # 30Mb max msg
      message-frame-size =  30000000b
      send-buffer-size =  30000000
      receive-buffer-size =  30000000b
      maximum-frame-size = 30000000b
    }
  }
  loggers = ["akka.event.slf4j.Slf4jLogger"]
  loglevel = "DEBUG"
  logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
}

我的docker文件,該文件根據日志正確構建和運行應用程序:

FROM openjdk:8u151

    # Env variables
    ENV SCALA_VERSION 2.12.4
    ENV SBT_VERSION 1.1.1

    # Scala expects this file
    RUN touch /usr/lib/jvm/java-8-openjdk-amd64/release

    # Install Scala
    # Piping curl directly in tar
    RUN \
      curl -fsL https://downloads.typesafe.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz | tar xfz - -C /root/ && \
      echo >> /root/.bashrc && \
      echo "export PATH=~/scala-$SCALA_VERSION/bin:$PATH" >> /root/.bashrc

    # Mk app dir
    RUN mkdir /alor

    # Define working directory
    WORKDIR /alor

    # Add target packaged app
    COPY target/universal/stage/ /alor/

    # Expose ports
    EXPOSE 800
    EXPOSE 5150

    # Launch the app
    CMD ./bin/alor

運行映像后,我在檢查容器后嘗試訪問地址172.17.0.x:800,但未在容器控制台上記錄任何內容。

找到了我自己的解決方案,不知道它是否歸結為綁定配置中的akka​​問題,或者當我嘗試使用諸如bind-hostname = 127.0.0.1 bind-port=xxx但設置例如:

  hostname = 172.17.0.2   
  port = 800

  bind-hostname = 0.0.0.0
  bind-port = ""         

通過172.17.0.2:800使akka系統可以從外界訪問。 泊塢窗容器的IP可以使用內部網絡以及替代猜測它的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM