22
22
GOARCH=amd64
23
23
endif
24
24
25
+ ifeq (${TARGET_OS},windows)
26
+ GO_VERSION =1.12
27
+ else
28
+ GO_VERSION =1.15
29
+ endif
30
+
25
31
all : docker
26
32
27
33
# Dynamic go build; useful in that it does not have -a so it won't recompile
@@ -47,7 +53,7 @@ xplatform-build:
47
53
48
54
BUILDER_IMAGE ="amazon/amazon-ecs-agent-build:make"
49
55
.builder-image-stamp : scripts/dockerfiles/Dockerfile.build
50
- @docker build -f scripts/dockerfiles/Dockerfile.build -t $(BUILDER_IMAGE ) .
56
+ @docker build --build-arg GO_VERSION= $( GO_VERSION ) - f scripts/dockerfiles/Dockerfile.build -t $(BUILDER_IMAGE ) .
51
57
touch .builder-image-stamp
52
58
53
59
# 'build-in-docker' builds the agent within a dockerfile and saves it to the ./out
@@ -71,11 +77,17 @@ docker: certs build-in-docker pause-container-release cni-plugins .out-stamp
71
77
@docker build -f scripts/dockerfiles/Dockerfile.release -t " amazon/amazon-ecs-agent:make" .
72
78
@echo " Built Docker image \" amazon/amazon-ecs-agent:make\" "
73
79
80
+ ifeq (${TARGET_OS},windows)
81
+ BUILD ="cleanbuild-${TARGET_OS}"
82
+ else
83
+ BUILD =cleanbuild
84
+ endif
85
+
74
86
# 'docker-release' builds the agent from a clean snapshot of the git repo in
75
87
# 'RELEASE' mode
76
88
# TODO: make this idempotent
77
89
docker-release : pause-container-release cni-plugins .out-stamp
78
- @docker build -f scripts/dockerfiles/Dockerfile.cleanbuild -t " amazon/amazon-ecs-agent-cleanbuild :make" .
90
+ @docker build --build-arg GO_VERSION= ${GO_VERSION} - f scripts/dockerfiles/Dockerfile.cleanbuild -t " amazon/amazon-ecs-agent-${BUILD} :make" .
79
91
@docker run --net=none \
80
92
--env TARGET_OS=" ${TARGET_OS} " \
81
93
--env LDFLAGS=" -X github.com/aws/amazon-ecs-agent/agent/config.DefaultPauseContainerTag=$( PAUSE_CONTAINER_TAG) \
@@ -84,7 +96,7 @@ docker-release: pause-container-release cni-plugins .out-stamp
84
96
--volume " $( PWD) /out:/out" \
85
97
--volume " $( PWD) :/src/amazon-ecs-agent" \
86
98
--rm \
87
- " amazon/amazon-ecs-agent-cleanbuild :make"
99
+ " amazon/amazon-ecs-agent-${BUILD} :make"
88
100
89
101
# Release packages our agent into a "scratch" based dockerfile
90
102
release : certs docker-release
@@ -181,7 +193,7 @@ get-cni-sources:
181
193
git submodule update --init --recursive
182
194
183
195
build-ecs-cni-plugins :
184
- @docker build -f scripts/dockerfiles/Dockerfile.buildECSCNIPlugins -t " amazon/amazon-ecs-build-ecs-cni-plugins:make" .
196
+ @docker build --build-arg GO_VERSION= $( GO_VERSION ) - f scripts/dockerfiles/Dockerfile.buildECSCNIPlugins -t " amazon/amazon-ecs-build-ecs-cni-plugins:make" .
185
197
docker run --rm --net=none \
186
198
-e GIT_SHORT_HASH=$(shell cd $(ECS_CNI_REPOSITORY_SRC_DIR ) && git rev-parse --short=8 HEAD) \
187
199
-e GIT_PORCELAIN=$(shell cd $(ECS_CNI_REPOSITORY_SRC_DIR ) && git status --porcelain 2> /dev/null | wc -l | sed 's/^ * //') \
@@ -192,7 +204,7 @@ build-ecs-cni-plugins:
192
204
@echo " Built amazon-ecs-cni-plugins successfully."
193
205
194
206
build-vpc-cni-plugins :
195
- @docker build --build-arg GOARCH=$(GOARCH ) -f scripts/dockerfiles/Dockerfile.buildVPCCNIPlugins -t " amazon/amazon-ecs-build-vpc-cni-plugins:make" .
207
+ @docker build --build-arg GOARCH=$(GOARCH ) --build-arg GO_VERSION= $( GO_VERSION ) - f scripts/dockerfiles/Dockerfile.buildVPCCNIPlugins -t " amazon/amazon-ecs-build-vpc-cni-plugins:make" .
196
208
docker run --rm --net=none \
197
209
-e GIT_SHORT_HASH=$(shell cd $(VPC_CNI_REPOSITORY_SRC_DIR ) && git rev-parse --short=8 HEAD) \
198
210
-u " $( USERID) " \
@@ -331,6 +343,7 @@ clean:
331
343
# ensure docker is running and we can talk to it, abort if not:
332
344
docker ps > /dev/null
333
345
-docker rmi $(BUILDER_IMAGE ) " amazon/amazon-ecs-agent-cleanbuild:make"
346
+ -docker rmi $(BUILDER_IMAGE ) " amazon/amazon-ecs-agent-cleanbuild-windows:make"
334
347
rm -f misc/certs/ca-certificates.crt & > /dev/null
335
348
rm -rf out/
336
349
-$(MAKE ) -C $(ECS_CNI_REPOSITORY_SRC_DIR ) clean
0 commit comments