How to expose and run/serve a GO web application running within a Docker Container
Set up a test environment to replicate a web server using Docker running a GO application
What I have done so far
- I have a Dockerfile as below, pretty straightforward
FROM golang:alpine as unwindtest ENV GO111MODULE=on \ CGO_ENABLED=0 \ GOFLAGS=-mod=mod COPY . /app/ WORKDIR /app/ RUN ls -al EXPOSE 8010 RUN go install -v github.com/some1/some2 RUN go build -v .
After building the Dockerfile, with the command as
docker build -t unwindtest:$BUILD_NUMBER .
Run the image and run the binaries from within the container
docker run --env-file ./env.list --rm -it -p 8010:8010 unwindtest:$BUILD_NUMBER /app # /go/bin/<name of binary/app>
I expose the port as change the nfw settings with
sudo ufw allow 8010/tcp
docker ps -aalso shows something as below
290c17f5d54b unwindtest:0.0.2 "/bin/sh" 13 days ago Up 13 days 0.0.0.0:8010->8010/tcp affectionate_mendel
- Are we listening to the port
root@whatever# netstat -plant | grep 8010 tcp6 0 0 :::8010 :::* LISTEN 136450/docker-proxy
- Now problem is I go to the port for the Docker DO droplet and look for the port but neither can I curl or see anything here
How do I expose and run this GO application on the localhost as
http:\\<ip>:port , or simply put am I missing any steps here?
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.×