1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#
# First Stage
#
# Build go application using base image with golang installed
Bootstrap: docker
From: golang:1.12.3-alpine3.9
Stage: one
%post
# prep environment
export PATH="/go/bin:/usr/local/go/bin:$PATH"
export HOME="/root"
cd /root
# insert source code, could also be copied from host with %files
cat << EOF > hello.go
package main
import "fmt"
func main() {
fmt.Printf("Hello World!\n")
}
EOF
# build go application
go build -o hello hello.go
#
# Second Stage
#
# Install go application into image without golang installed
Bootstrap: library
From: alpine:3.11.5
Stage: two
# install go binary from stage one
%files from one
/root/hello /bin/hello
# run application
%runscript
hello
|