Skip to content

Instantly share code, notes, and snippets.

@sawadashota
Last active February 1, 2018 01:13
Show Gist options
  • Save sawadashota/be9aa035860b8e0a2e13a96dea3d1b6d to your computer and use it in GitHub Desktop.
Save sawadashota/be9aa035860b8e0a2e13a96dea3d1b6d to your computer and use it in GitHub Desktop.
Build docker image
# Please set env
# OWNER : Docker Hub owner
# IMAGE_NAME : Docker Hub image name
# DOCKER_USER : Username for login Docker Hub
# DOCKER_PASS : Password for login Docker Hub
alias:
default_env: &default_env
docker:
- image: circleci/golang:1.9.3
working_directory: /go/src/github.com/project/repo
setup_remote_docker: &setup_remote_docker
version: 17.11.0-ce
docker_layer_caching: true
version: 2
jobs:
build:
<<: *default_env
steps:
- setup_remote_docker: *setup_remote_docker
- checkout
- run:
name: Build
command: docker build -t ${OWNER}/${IMAGE_NAME}:latest .
- run:
name: Save image
command: docker image save ${OWNER}/${IMAGE_NAME}:latest > ./docker-image.tar
- persist_to_workspace:
root: .
paths:
- ./docker-image.tar
push:
<<: *default_env
steps:
- setup_remote_docker: *setup_remote_docker
- attach_workspace:
at: .
- run:
name: Load image from tar
command: docker load -i ./docker-image.tar
- run:
name: Tag to latest
command: docker tag ${OWNER}/${IMAGE_NAME}:latest ${OWNER}/${IMAGE_NAME}:$CIRCLE_TAG
- run:
name: Docker Login
command: docker login -u ${DOCKER_USER} -p ${DOCKER_PASS}
- run:
name: Push image to registory
command: docker push ${OWNER}/${IMAGE_NAME}
workflows:
version: 2
build:
jobs:
- build:
filters:
tags:
only: /.*/
- push:
requires:
- build
filters:
branches:
ignore: /.*/
tags:
only: /.*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment