我有一个闪亮的代理应用,可以与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"]
答案 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