Goal Set up a test environment to replicate a web server using Docker running a GO application
What I have done so far
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 .
docker build -t unwindtest:$BUILD_NUMBER .
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 -a
also 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
root@whatever# netstat -plant | grep 8010
tcp6 0 0 :::8010 :::* LISTEN 136450/docker-proxy
<ip>:8010
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.
Hi there,
I think that with the current Dockerfile you are just building the executable but not running it.
I believe that you should add a
CMD
command at the end:That way when you run the container it will actually start the Go application as well.
Besides that, all the other things that you’ve shared look good.
Let me know how it goes! Regards, Bobby