We cannot have any RUN commands in the Windows stage when using docker buildx, which is why we were using the busybox-helper image. The purpose of the image was to contain a few things that we would obtain by running a few commands: - symlinks for the busybox binary - run vcredist_x64.exe which would also give us the vcruntime140.dll which is necessary for dig or httpd. There are alternatives to the commands above that can be achieved in a Linux stage as well: - we can create the symlinks in a Linux stage with ln -s. Copying them over to Windows will allow them to work just as well as if they were being copied over from a Windows image. The 'Files\' prefix issue to the symlink target still persists. - we can download the vcruntime140.dll directly, allowing us to skip the vcredist_x64.exe installation.
39 lines
1.4 KiB
Makefile
39 lines
1.4 KiB
Makefile
# Copyright 2020 The Kubernetes Authors.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
REGISTRY ?= gcr.io/kubernetes-e2e-test-images
|
|
REMOTE_DOCKER_URL ?=
|
|
DOCKER_CERT_PATH ?= "$(HOME)/.docker"
|
|
export
|
|
|
|
ALL_IMAGES = powershell-helper
|
|
|
|
sub-build-%:
|
|
img_version=$(shell cat $*/VERSION); \
|
|
docker --tlsverify --tlscacert "$(DOCKER_CERT_PATH)/ca.pem" \
|
|
--tlscert "$(DOCKER_CERT_PATH)/cert.pem" --tlskey "$(DOCKER_CERT_PATH)/key.pem" \
|
|
-H "$(REMOTE_DOCKER_URL)" build --no-cache --pull -t "$(REGISTRY)/$*:$${img_version}" $*/
|
|
|
|
sub-push-%:
|
|
img_version=`cat $*/VERSION`; \
|
|
docker --tlsverify --tlscacert "$(DOCKER_CERT_PATH)/ca.pem" \
|
|
--tlscert "$(DOCKER_CERT_PATH)/cert.pem" --tlskey "$(DOCKER_CERT_PATH)/key.pem" \
|
|
-H "$(REMOTE_DOCKER_URL)" push "$(REGISTRY)/$*:$${img_version}"
|
|
|
|
all-build: $(foreach image, ${ALL_IMAGES}, sub-build-${image})
|
|
|
|
all-push: all-build $(foreach image, ${ALL_IMAGES}, sub-push-${image})
|
|
|
|
.PHONY: all-build all-push
|