Skip to content

colldesk/docker-golang-gin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Docker Image for Golang development with Gin

======== This container is based on the excellent work done in ntboes/golang-gin. It deals with 2 problems I encountered:

  • the container start is slow if the volume is only making your own code available to the container. I suggest linking your entire $GOPATH/src directory, so dependencies are already available and do not need to download on startup.
  • your app had to be placed into /go/src/app or the container would not work. Now you can configure the WORKINGDIR environment variable to suit your need. The main go file has to reside in WORKINGDIR.

This docker image takes advantage of Gin in order to allow running a Go Application in a Docker container with live reloading. The image is based on the official golang:wheezy image.

Usage

Docker

Run a docker container with your app in the current folder

docker run --name some-instance-name -v $(pwd):/go/src tehsphinx/docker-golang-gin

Crane

If you are using Crane linking the folder app works as follows

containers:
    stratus_app:
        image: tehsphinx/docker-golang-gin
        run:
            volume: ["./../..:/go/src"]
            publish: ["3000:3000"]
            detach: false

TODO: sample correct setting of environment variable.

Docker Compose

If you are using Docker Compose linking the folder app works as follows

web:
  image: tehsphinx/docker-golang-gin
  command: gin
  ports:
   - "3000:3000"
  volumes:
   - ./../..:/go/src
  environment:
   - WORKINGDIR=/go/src/github.com/yourname/yourapp

The WORKDIR environment variable is useful if you want to link in all of your dependencies (e.g. link /go/src/) and not move your app to /go/src/app. Just point WORKDIR to your app e.g. WORKDIR=/go/src/github.com/yourname/yourapp

Arguments

All flags after the image name in the docker command are forwarded to gin, e.g to set the port of gin to 4000:

docker run --name some-instance-name -v $(pwd):/go/src tehsphinx/docker-golang-gin -p 4000

For further info see: Gin or gin -h.

About

A Docker image for a development environment with go and gin

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%