dockergodockerfilerevel

Revel and Docker container


I am attempting to create a docker container that contains the revel skeleton app. Everything seems to build OK and the container is created but when I go to localhost:9000 in my browser nothing comes up.
To make sure my environment is working properly I created a simple hello world go app and created a docker container for it. It worked OK using the same port 9000. This makes me think that there is something not configured properly in my dockerfile.

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 command used:

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

After command is executed and container is created the console shows:

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

When I go to localhost:9000 I would expect to see the text It Works!


Solution

  • You're listening on localhost:9000, so 127.0.0.1 points to your container and not your local machine.

    You have two solutions to make it work: