feat(docker): suport arm arm64 alpine i386 image (#77)

This commit is contained in:
Bo-Yi Wu
2017-12-22 10:52:42 +08:00
committed by GitHub
parent 9c958f8637
commit 41ace25862
9 changed files with 161 additions and 51 deletions
+90 -31
View File
@@ -1,6 +1,6 @@
workspace:
base: /srv/app
path: src/github.com/appleboy/drone-scp
base: /go/src
path: github.com/appleboy/drone-scp
clone:
git:
@@ -10,57 +10,117 @@ clone:
pipeline:
test:
image: appleboy/golang-testing
image: appleboy/golang-testing:1.9.2
pull: true
group: build
secrets: [ codecov_token ]
environment:
TAGS: netgo
GOPATH: /srv/app
commands:
- make ssh-server
- make vet
- make lint
# - make test
- make fmt-check
- coverage all
- make coverage
- make build
# build binary for docker image
- make static_build
when:
event: [ push, tag, pull_request ]
build_linux_amd64:
image: appleboy/golang-testing:1.9.2
pull: true
group: build
commands:
- make build_linux_amd64
build_linux_i386:
image: appleboy/golang-testing:1.9.2
pull: true
group: build
commands:
- make build_linux_i386
build_linux_arm64:
image: appleboy/golang-testing:1.9.2
pull: true
group: build
commands:
- make build_linux_arm64
build_linux_arm:
image: appleboy/golang-testing:1.9.2
pull: true
group: build
commands:
- make build_linux_arm
release:
image: appleboy/golang-testing
image: appleboy/golang-testing:1.9.2
pull: true
environment:
TAGS: netgo
GOPATH: /srv/app
commands:
- make release
when:
event: [ tag ]
branch: [ refs/tags/* ]
publish_latest:
image: plugins/docker
repo: ${DRONE_REPO}
tags: [ 'latest' ]
secrets: [ docker_username, docker_password ]
when:
event: [ push ]
branch: [ master ]
local: false
publish_tag:
publish_alpine:
image: plugins/docker
group: release
pull: true
dockerfile: Dockerfile.alpine
secrets: [ docker_username, docker_password ]
default_tags: true
default_suffix: alpine
repo: ${DRONE_REPO}
tags: [ '${DRONE_TAG}' ]
when:
event: [ push, tag ]
local: false
publish_linux_amd64:
image: plugins/docker:17.05
pull: true
secrets: [ docker_username, docker_password ]
group: release
repo: ${DRONE_REPO}
auto_tag: true
dockerfile: Dockerfile
when:
event: [ tag ]
branch: [ refs/tags/* ]
event: [ push, tag ]
local: false
publish_linux_i386:
image: plugins/docker:17.05
pull: true
secrets: [ docker_username, docker_password ]
group: release
repo: ${DRONE_REPO}
auto_tag: true
auto_tag_suffix: i386
dockerfile: Dockerfile.i386
when:
event: [ push, tag ]
local: false
publish_linux_arm64:
image: plugins/docker:17.05
pull: true
secrets: [ docker_username, docker_password ]
group: release
repo: ${DRONE_REPO}
auto_tag: true
auto_tag_suffix: arm64
dockerfile: Dockerfile.arm64
when:
event: [ push, tag ]
local: false
publish_linux_arm:
image: plugins/docker:17.05
pull: true
secrets: [ docker_username, docker_password ]
group: release
repo: ${DRONE_REPO}
auto_tag: true
auto_tag_suffix: arm
dockerfile: Dockerfile.arm
when:
event: [ push, tag ]
local: false
release_tag:
@@ -71,7 +131,6 @@ pipeline:
- dist/release/*
when:
event: [ tag ]
branch: [ refs/tags/* ]
local: false
facebook:
+7 -8
View File
@@ -1,11 +1,10 @@
FROM alpine:3.4
FROM plugins/base:multiarch
LABEL maintainer="Bo-Yi Wu <appleboy.tw@gmail.com>"
LABEL maintainer="Bo-Yi Wu <appleboy.tw@gmail.com>" \
org.label-schema.name="Drone SCP" \
org.label-schema.vendor="Bo-Yi Wu" \
org.label-schema.schema-version="1.0"
RUN apk update && \
apk add ca-certificates && \
rm -rf /var/cache/apk/*
ADD release/linux/amd64/drone-scp /bin/
ADD drone-scp /
ENTRYPOINT ["/drone-scp"]
ENTRYPOINT ["/bin/drone-scp"]
+13
View File
@@ -0,0 +1,13 @@
FROM alpine:3.6
LABEL maintainer="Bo-Yi Wu <appleboy.tw@gmail.com>" \
org.label-schema.name="Drone SCP" \
org.label-schema.vendor="Bo-Yi Wu" \
org.label-schema.schema-version="1.0"
RUN apk add -U --no-cache ca-certificates && \
rm -rf /var/cache/apk/*
ADD release/linux/amd64/drone-scp /bin/
ENTRYPOINT ["/bin/drone-scp"]
+10
View File
@@ -0,0 +1,10 @@
FROM plugins/base:multiarch
LABEL maintainer="Bo-Yi Wu <appleboy.tw@gmail.com>" \
org.label-schema.name="Drone SCP" \
org.label-schema.vendor="Bo-Yi Wu" \
org.label-schema.schema-version="1.0"
ADD release/linux/amd64/drone-scp /bin/
ENTRYPOINT ["/bin/drone-scp"]
+10
View File
@@ -0,0 +1,10 @@
FROM plugins/base:multiarch
LABEL maintainer="Bo-Yi Wu <appleboy.tw@gmail.com>" \
org.label-schema.name="Drone SCP" \
org.label-schema.vendor="Bo-Yi Wu" \
org.label-schema.schema-version="1.0"
ADD release/linux/arm64/drone-scp /bin/
ENTRYPOINT ["/bin/drone-scp"]
-8
View File
@@ -1,8 +0,0 @@
FROM armhfbuild/alpine:3.4
RUN apk update && \
apk add ca-certificates && \
rm -rf /var/cache/apk/*
ADD drone-scp /bin/
ENTRYPOINT ["/bin/drone-scp"]
+10
View File
@@ -0,0 +1,10 @@
FROM plugins/base:multiarch
LABEL maintainer="Bo-Yi Wu <appleboy.tw@gmail.com>" \
org.label-schema.name="Drone SCP" \
org.label-schema.vendor="Bo-Yi Wu" \
org.label-schema.schema-version="1.0"
ADD release/linux/i386/drone-scp /bin/
ENTRYPOINT ["/bin/drone-scp"]
+9
View File
@@ -0,0 +1,9 @@
FROM microsoft/nanoserver:10.0.14393.1884
LABEL maintainer="Bo-Yi Wu <appleboy.tw@gmail.com>" \
org.label-schema.name="Drone SCP" \
org.label-schema.vendor="Bo-Yi Wu" \
org.label-schema.schema-version="1.0"
ADD drone-scp.exe /drone-scp.exe
ENTRYPOINT [ "\\drone-scp.exe" ]
+12 -4
View File
@@ -94,14 +94,22 @@ release-copy:
release-check:
cd $(DIST)/release; $(foreach file,$(wildcard $(DIST)/release/$(EXECUTABLE)-*),sha256sum $(notdir $(file)) > $(notdir $(file)).sha256;)
# for docker.
static_build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags '$(TAGS)' -ldflags '$(EXTLDFLAGS)-s -w $(LDFLAGS)' -o $(DEPLOY_IMAGE)
build_linux_amd64:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags '$(TAGS)' -ldflags '$(EXTLDFLAGS)-s -w $(LDFLAGS)' -o release/linux/amd64/$(DEPLOY_IMAGE)
build_linux_i386:
CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -a -tags '$(TAGS)' -ldflags '$(EXTLDFLAGS)-s -w $(LDFLAGS)' -o release/linux/i386/$(DEPLOY_IMAGE)
build_linux_arm64:
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -a -tags '$(TAGS)' -ldflags '$(EXTLDFLAGS)-s -w $(LDFLAGS)' -o release/linux/arm64/$(DEPLOY_IMAGE)
build_linux_arm:
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build -a -tags '$(TAGS)' -ldflags '$(EXTLDFLAGS)-s -w $(LDFLAGS)' -o release/linux/arm/$(DEPLOY_IMAGE)
docker_image:
docker build -t $(DEPLOY_ACCOUNT)/$(DEPLOY_IMAGE) .
docker: static_build docker_image
docker: docker_image
docker_deploy:
ifeq ($(tag),)