Я пытаюсь собрать свой первый Dockerfile для приложения Go и использую DroneCI для построения конвейера.
Конфигурация DroneCI выглядит следующим образом:
kind: pipeline
type: docker
name: Build auto git tagger
steps:
- name: test and build
image: golang
commands:
- go mod download
- go test ./test
- go build ./cmd/git-tagger
- name: Build docker image
image: plugins/docker
pull: if-not-exists
settings:
username:
password:
repo:
dockerfile: ./build/ci/Dockerfile
registry:
auto_tag: true
trigger:
branch:
- master
Я следовал соглашению о структуре из https://github.com/golang-standards/project-layout:
Пока Dockerfile выглядит следующим образом:
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
Следующим шагом является копирование двоичного файла приложения GO в контейнер, и здесь возникает вопрос, где поставить скомпилированный бинарный файл? На данный момент он помещается в папку проекта.