Super simple golang webapp docker image project for running on Amazon Elastic Beanstalk.
Runs a web server on :8080 and listens for /
.
Prints to stdout using log
.
Reads a template file from a templates
folder in $GOPATH
.
It uses "github.com/gorilla/mux" for routing, though its use is simply to verify that vendor libs are imported during the container build. But you could do without.
It is based on google/golang-runtime
If you want to see if the docker image runs the app.
Build the image:
docker build --rm --tag=ebs-docker-hello .
Run the image in a new container
docker run -p 8080 -d ebs-docker-hello
Make a request:
$: curl localhost:8080
<!DOCTYPE html>
<html>
<head>
<title>Docker on Beanstalk</title>
</head>
<body>
<center>
Hello Docker on Beanstalk!
</center>
</body>
This is quite involved, so I made a video run-through available on YouTube
Currently the Dockerfile
specifies the full $GOPATH
as
/gopath/src/app
. Docker v1.3 will expand environment variables in
WORKDIR
so that the file can then just say:
WORKDIR $GOPATH