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 создает сеть

Ссылка: https://github.com/docker/compose/issues/3736

Другие вопросы по тегам