Контейнер Revel и Docker - PullRequest
       21

Контейнер Revel и Docker

0 голосов
/ 30 декабря 2018

Я пытаюсь создать докер-контейнер, содержащий приложение скелета revel.Кажется, все работает нормально, и контейнер создается, но когда я захожу в localhost: в моем браузере ничего не отображается: 9000.
Чтобы убедиться, что моя среда работает должным образом, я создал простое приложение hello world go и создал Docker-контейнер дляЭто.Он работал нормально, используя тот же порт 9000. Это заставляет меня думать, что что-то не настроено должным образом в моем файле Docker.

Dockerfile:

#Compile stage
FROM golang:1.11.4-alpine3.8 AS build-env
ENV CGO_ENABLED 0
RUN apk add --no-cache git
ADD . /go/src/revelapp

# Install revel framework
RUN go get -u github.com/revel/revel
RUN go get -u github.com/revel/cmd/revel
#build revel app
RUN revel build revelapp app dev

# Final stage
FROM alpine:3.8
EXPOSE 9000
WORKDIR /
COPY --from=build-env /go/app /
ENTRYPOINT /run.sh

Используемая команда Docker:

docker build -t revelapp . && docker run -p 9000:9000 --name revelapp revelapp 

После выполнения команды и создания контейнера на консоли отображается:

INFO  17:25:01    app     run.go:32: Running revel server                      
INFO  17:25:01    app   plugin.go:9: Go to /@tests to run the tests.           
Revel engine is listening on.. localhost:9000

Когда я перейду на localhost: 9000, я ожидаю увидеть текст «Это работает!»

1 Ответ

0 голосов
/ 30 декабря 2018

Вы слушаете localhost:9000, поэтому 127.0.0.1 указывает на ваш контейнер, а не на локальный компьютер.

У вас есть два решения, чтобы заставить его работать:

  • Прослушайте 0.0.0.0:9000
  • Используйте --network = "host" в вашей команде запуска docker: 127.0.0.1 в вашем контейнере Docker будет указывать на ваш хост Docker.
...