Docker应用无法在docker-compose中使用Shinyproxy启动,可以运行

时间:2019-01-31 02:37:57

标签: docker docker-compose shinyproxy

我有一个闪亮的代理应用,可以与docker run ...配合使用

docker run --name=shinyproxy -d -v /var/run/docker.sock:/var/run/docker.sock --net telethonkids-net -p 80:8080 --rm telethonkids/shinyproxy

当我尝试在浏览器上加载以下docker-compose Shinyproxy时,但尝试启动时应用程序超时(容器无响应):

version: "3.6"
services:
    shinyproxy:
      build:
        context: ./shinyproxy
        dockerfile: Dockerfile
      networks:
        - telethonkids-net
      volumes:
        - "/var/run/docker.sock:/var/run/docker.sock"
      ports:
        - 80:8080

networks:
  telethonkids-net:

我正在Ubuntu 18.04虚拟机上运行它。还有其他一些标题相似的问题,但我发现没有一个与我的问题相符。

这是我的application.yaml

proxy:
  title: Shiny Proxy Landing Page
  hide-navbar: true
  landing-page: /
  port: 8080
  docker:
    internal-networking: true
  specs:
  - id: id1
    display-name: xxx
    description: yyy
    container-cmd: ["/usr/bin/shiny-server.sh"]
    container-image: telethonkids/zzz
    container-env:
      user: 'shiny'
      environment:
        - APPLICATION_LOGS_TO_STDOUT=false

Shinyproxy Dockerfile:

FROM openjdk:8-jre

RUN mkdir -p /opt/shinyproxy/
RUN wget https://www.shinyproxy.io/downloads/shinyproxy-2.1.0.jar -O /opt/shinyproxy/shinyproxy.jar
COPY application.yml /opt/shinyproxy/application.yml

WORKDIR /opt/shinyproxy/
CMD ["java", "-jar", "/opt/shinyproxy/shinyproxy.jar"]

2 个答案:

答案 0 :(得分:1)

我认为这归结为菜鸟错误。我创建了一个网络来运行我的应用程序。 docker run --net telethonkids-net。尝试在docker-compose内部使用同一网络时,这会引起问题:

网络:   telethonkids-net:

在仔细阅读了文档之后,我可以将这个预先创建的网络用于以下用途:

networks:
  default:
    external:
      name: telethonkids-net

并添加

  networks:
    default:

到Shinyproxy服务。

应用启动。解决方法是仅在docker中删除创建的网络,然后在docker-compose中创建它。我还需要命名网络,使其与shinyproxy/application.yml中的网络保持一致。

networks:
  telethonkids-net:
    name: telethonkids-net

答案 1 :(得分:0)

从docker-compose v3.5开始,您只需从docker-compose.yml内部创建网络,而不必在运行docker-compose up之前创建网络

例如:

version: '3.7'

services:
  shinyproxy:
    image: myimage
    restart: unless-stopped
    container_name: "ShinyProxy"
    networks:
      shinyproxy-net:

networks:
  shinyproxy-net:
    name: shinyproxy-net

现在,一个简单的docker-compose up就创建了网络

参考:https://github.com/docker/compose/issues/3736#issuecomment-365318122