2.4 KiB
2.4 KiB
Standard Go Project Template
This is a template for Go application projects based on Standard Go Project Layout.
Build, run and test application locally
Create environment file
Create and fill environment file from template .env.dist
cp configs/.env.dist .env
Build application
go mod tidy
go build -ldflags "-s -w" -o bin/app .
Run application
env $(cat .env|grep -v -e #|xargs) ./bin/app
Test application
go test ./...
Build, run and debug application with docker
Create environment file for docker
Create and fill environment file from template .env.dist
cp configs/.env.dist .env.docker
Build docker container
Build container
docker build . -t psssix/golang-app:latest
and container with debugger
docker build . -f Debug.Dockerfile -t psssix/golang-app:debug
Push container
docker push psssix/golang-app:latest
Run docker container
Run container on docker
docker run -d --name golang-app --env-file .env.docker psssix/golang-app:latest
and container with debugger
docker run -d --name golang-app --security-opt="apparmor=unconfined" --cap-add=SYS_PTRACE -p 4040:4040 --env-file .env.docker psssix/golang-app:debug
Debug docker container
- Create and fill
.env.dockerfile by template.env.dist. - Build docker container with debugger.
- Run container on docker with debugger.
- Play debug configuration names as "debug remote docker container".
Build, run and debug application with docker-compose
Create environment file for docker
Create and fill environment file from template .env.dist
cp configs/.env.dist .env.docker
Build docker container
Build container
docker build . -t psssix/golang-app:latest
and container with debugger
docker build . -f Debug.Dockerfile -t psssix/golang-app:debug
Run docker container
Run container on docker
docker up -d --env-file .env.docker
and container with debugger
docker up -d --env-file .env.docker -f docker-compose-debug.yml
Debug docker container
- Create and fill
.env.dockerfile by template.env.dist. - Build docker container with debugger.
- Run container on docker with debugger.
- Play debug configuration names as "debug remote docker container".