Skip to content

Test, build, push (to DockerHub) and deploy a long running "hello-world" Docker Image to Amazon Elastic Container Service (ecs).

License

Notifications You must be signed in to change notification settings

JeffDeCola/hello-go-deploy-amazon-ecs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HELLO GO DEPLOY AMAZON ECS

Tag Latest Go Reference Go Report Card codeclimate Maintainability codeclimate Issue Count Docker Pulls MIT License jeffdecola.com

*** THE DEPLOY IS UNDER CONSTRUCTION - CHECK BACK SOON ***

Deploy a "hello-world" docker image to Amazon Elastic Container Service (ecs).

Other Services

Table of Contents

Documentation and Reference

OVERVIEW

Every 2 seconds this App will print,

    INFO[0000] Let's Start this!
    Hello everyone, count is: 1
    Hello everyone, count is: 2
    Hello everyone, count is: 3
    etc...

PREREQUISITES

You will need the following go packages,

go get -u -v github.com/sirupsen/logrus
go get -u -v github.com/cweill/gotests/...

SOFTWARE STACK

RUN

To run.sh,

cd hello-go-deploy-amazon-ecs-code
go run main.go

To create-binary.sh,

cd hello-go-deploy-amazon-ecs-code/bin
go build -o hello-go ../main.go
./hello-go

This binary will not be used during a docker build since it creates it's own.

STEP 1 - TEST

To create unit _test files,

cd hello-go-deploy-amazon-ecs-code
gotests -w -all main.go

To run unit-tests.sh,

go test -cover ./... | tee test/test_coverage.txt
cat test/test_coverage.txt

STEP 2 - BUILD (DOCKER IMAGE VIA DOCKERFILE)

This docker image is built in two stages. In stage 1, rather than copy a binary into a docker image (because that can cause issues), the Dockerfile will build the binary in the docker image. In stage 2, the Dockerfile will copy this binary and place it into a smaller docker image based on alpine, which is around 13MB.

To build.sh with a Dockerfile,

cd hello-go-deploy-amazon-ecs-code/build
docker build -f Dockerfile -t jeffdecola/hello-go-deploy-amazon-ecs .

You can check and test this docker image,

docker images jeffdecola/hello-go-deploy-amazon-ecs
docker run --name hello-go-deploy-amazon-ecs -dit jeffdecola/hello-go-deploy-amazon-ecs
docker exec -i -t hello-go-deploy-amazon-ecs /bin/bash
docker logs hello-go-deploy-amazon-ecs
docker rm -f hello-go-deploy-amazon-ecs

STEP 3 - PUSH (TO DOCKERHUB)

You must be logged in to DockerHub,

docker login

To push.sh,

docker push jeffdecola/hello-go-deploy-amazon-ecs

Check the hello-go-deploy-amazon-ecs docker image at DockerHub.

STEP 4 - DEPLOY (TO ACS)

Coming soon.

CONTINUOUS INTEGRATION & DEPLOYMENT

Refer to ci-README.md on how I automated the above steps using concourse.

About

Test, build, push (to DockerHub) and deploy a long running "hello-world" Docker Image to Amazon Elastic Container Service (ecs).

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published