11#! /bin/bash
22
3- # SELENIUM_VERSION=$(grep selenium-server Base/Dockerfile | sed 's/.*-\([^-]*\)\.jar \\/\1/' | head -n 1)
3+ SELENIUM_VERSION=$( grep BASE_VERSION Makefile | sed ' s/.*,\([^)]*\))/\1/p' | head -n 1)
4+ RELEASE=$( grep BASE_RELEASE Makefile | sed ' s/.*,\([^)]*\))/\1/p' | head -n 1)
45NAME=" ${NAME:- seleniarm} "
56VERSION=" ${VERSION:- $SELENIUM_VERSION } "
67BUILD_DATE=" ${BUILD_DATE:- $(date ' +%Y%m%d' )} "
7- PLATFORMS=" ${PLATFORMS:- linux/ arm64,linux/ amd64} "
8+ PLATFORMS=" ${PLATFORMS:- linux/ arm64,linux/ arm / v7,linux / amd64} "
89# BUILD_ARGS=--push
910
1011FROM_IMAGE_ARGS=" --build-arg NAMESPACE=$NAME --build-arg VERSION=$VERSION -$BUILD_DATE "
@@ -19,34 +20,34 @@ echo "Build and push images for target $1"
1920# docker run --rm --privileged aptman/qus -s -- -p
2021
2122if [ " $1 " = " base_multi" ]; then
22- cd ./Base && docker build ${BUILD_ARGS} --build-arg RELEASE=${RELEASE} --build-arg VERSION=${VERSION} -t ${NAME} /base:${TAG_VERSION} .
23+ cd ./Base && docker buildx build --platform ${PLATFORMS} ${BUILD_ARGS} --build-arg RELEASE=${RELEASE} --build-arg VERSION=${VERSION} -t ${NAME} /base:${TAG_VERSION} .
2324
2425elif [ " $1 " = " grid_multi" ]; then
25- cd ./Hub && docker build ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /hub:${TAG_VERSION} .
26- cd ../Distributor && docker build ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /distributor:${TAG_VERSION} .
27- cd ../Router && docker build ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /router:${TAG_VERSION} .
28- cd ../Sessions && docker build ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /sessions:${TAG_VERSION} .
29- cd ../SessionQueue && docker build ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /session-queue:${TAG_VERSION} .
30- cd ../NodeDocker && docker build ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /node-docker:${TAG_VERSION} .
31- cd ../EventBus && docker build ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /event-bus:${TAG_VERSION} .
26+ cd ./Hub && docker buildx build --platform ${PLATFORMS} ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /hub:${TAG_VERSION} .
27+ cd ../Distributor && docker buildx build --platform ${PLATFORMS} ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /distributor:${TAG_VERSION} .
28+ cd ../Router && docker buildx build --platform ${PLATFORMS} ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /router:${TAG_VERSION} .
29+ cd ../Sessions && docker buildx build --platform ${PLATFORMS} ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /sessions:${TAG_VERSION} .
30+ cd ../SessionQueue && docker buildx build --platform ${PLATFORMS} ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /session-queue:${TAG_VERSION} .
31+ cd ../NodeDocker && docker buildx build --platform ${PLATFORMS} ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /node-docker:${TAG_VERSION} .
32+ cd ../EventBus && docker buildx build --platform ${PLATFORMS} ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /event-bus:${TAG_VERSION} .
3233 # Prevent "failed to solve" errors by adding delay between NodeDocker and StandaloneDocker
3334 # by building EventBus in between them.
34- cd ../StandaloneDocker && docker build ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /standalone-docker:${TAG_VERSION} .
35+ cd ../StandaloneDocker && docker buildx build --platform ${PLATFORMS} ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /standalone-docker:${TAG_VERSION} .
3536
3637elif [ " $1 " = " node_base_multi" ]; then
37- cd ./NodeBase && docker build ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /node-base:${TAG_VERSION} .
38+ cd ./NodeBase && docker buildx build --platform ${PLATFORMS} ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /node-base:${TAG_VERSION} .
3839
3940elif [ " $1 " = " firefox_multi" ]; then
4041 FROM_IMAGE_ARGS=" $FROM_IMAGE_ARGS --build-arg BASE=node-firefox"
41- cd ./NodeFirefox && docker build ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -f Dockerfile.multi-arch -t ${NAME} /node-firefox:${TAG_VERSION} .
42+ cd ./NodeFirefox && docker buildx build --platform ${PLATFORMS} ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -f Dockerfile.multi-arch -t ${NAME} /node-firefox:${TAG_VERSION} .
4243 sleep 5 # Prevent "failed to solve" errors when trying to pull NodeFirefox dependency
43- cd ../Standalone && docker build ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /standalone-firefox:${TAG_VERSION} .
44+ cd ../Standalone && docker buildx build --platform ${PLATFORMS} ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /standalone-firefox:${TAG_VERSION} .
4445
4546elif [ " $1 " = " chromium_multi" ]; then
4647 FROM_IMAGE_ARGS=" $FROM_IMAGE_ARGS --build-arg BASE=node-chromium"
47- cd ./NodeChromium && docker build ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /node-chromium:${TAG_VERSION} .
48+ cd ./NodeChromium && docker buildx build --platform ${PLATFORMS} ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /node-chromium:${TAG_VERSION} .
4849 sleep 5 # Prevent "failed to solve" errors when trying to pull NodeChromium dependency
49- cd ../Standalone && docker build ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /standalone-chromium:${TAG_VERSION} .
50+ cd ../Standalone && docker buildx build --platform ${PLATFORMS} ${BUILD_ARGS} ${FROM_IMAGE_ARGS} -t ${NAME} /standalone-chromium:${TAG_VERSION} .
5051
5152elif [ " $1 " = " tag_and_push_multi_arch_browser_images" ]; then
5253 # make tag_and_push_multi_arch_browser_images
0 commit comments