Docker приложение не запускается с глянцевым прокси в docker-compose, работает с запуском
У меня есть блестящее приложение, которое отлично работает с 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 блестящий прокси-сервер загружается в браузер, но приложение перестает работать при попытке запуска (контейнер не отвечает):
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. Есть несколько других вопросов с похожими названиями, но ни один из тех, что я видел, не соответствовал моей проблеме.
Вот мое приложение. 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"]
1 ответ
Я думаю, что это сводится к ошибке новичка. Я создал сеть для запуска моего приложения. docker run --net telethonkids-net
, Это вызывало проблемы при попытке использовать ту же сеть внутри docker-compose
с:
сети: telethonkids-net:
После более подробного изучения документации я мог бы использовать эту предварительно созданную сеть со следующим:
networks:
default:
external:
name: telethonkids-net
и добавление
networks:
default:
на службу блестящего прокси.
И приложение запустилось. Исправление состояло в том, чтобы просто удалить созданную сеть в Docker и создать ее в docker-compose
, Мне также нужно было назвать сеть, чтобы она соответствовала тому, что у меня было в shinyproxy/application.yml
,
networks:
telethonkids-net:
name: telethonkids-net
Поскольку 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
создает сеть