Docker 应用无法在 docker-compose 中使用 shinyproxy 启动,适用于 运行
Docker app fails to launch with shinyproxy in docker-compose, works with run
我有一个与 docker run ...
配合使用的 shinyproxy 应用程序
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 虚拟盒子上。还有其他一些标题相似的问题,但我看到的 none 符合我的问题。
这是我的 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"]
我认为这是一个菜鸟错误。我已经通过 运行 我的应用程序创建了一个网络。 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
自 docker-compose v3.5 起,您只需从 docker-compose.yml
内部创建网络,而不必在 运行 docker-compose up
[= 之前创建网络15=]
举个例子:
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
我有一个与 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 虚拟盒子上。还有其他一些标题相似的问题,但我看到的 none 符合我的问题。
这是我的 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"]
我认为这是一个菜鸟错误。我已经通过 运行 我的应用程序创建了一个网络。 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
自 docker-compose v3.5 起,您只需从 docker-compose.yml
内部创建网络,而不必在 运行 docker-compose up
[= 之前创建网络15=]
举个例子:
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