@@ -12,14 +12,16 @@ CHART_VERSION_NIGHTLY := $(or $(CHART_VERSION_NIGHTLY),$(CHART_VERSION_NIGHTLY),
1212NAMESPACE := $(or $(NAMESPACE ) ,$(NAMESPACE ) ,$(NAME ) )
1313AUTHORS := $(or $(AUTHORS ) ,$(AUTHORS ) ,SeleniumHQ)
1414PUSH_IMAGE := $(or $(PUSH_IMAGE ) ,$(PUSH_IMAGE ) ,false)
15- FROM_IMAGE_ARGS := --build-arg NAMESPACE=$(NAMESPACE ) --build-arg VERSION=$(TAG_VERSION ) --build-arg AUTHORS=$(AUTHORS )
15+ TARGETARCH := $(or $(TARGETARCH ) ,$(TARGETARCH ) ,amd64)
16+ FROM_IMAGE_ARGS := --build-arg TARGETARCH=$(TARGETARCH ) --build-arg NAMESPACE=$(NAMESPACE ) --build-arg VERSION=$(TAG_VERSION ) --build-arg AUTHORS=$(AUTHORS )
1617BUILD_ARGS := $(BUILD_ARGS )
1718MAJOR := $(word 1,$(subst ., ,$(TAG_VERSION ) ) )
1819MINOR := $(word 2,$(subst ., ,$(TAG_VERSION ) ) )
1920MAJOR_MINOR_PATCH := $(word 1,$(subst -, ,$(TAG_VERSION ) ) )
2021FFMPEG_TAG_VERSION := $(or $(FFMPEG_TAG_VERSION ) ,$(FFMPEG_TAG_VERSION ) ,ffmpeg-7.0)
2122FFMPEG_BASED_NAME := $(or $(FFMPEG_BASED_NAME ) ,$(FFMPEG_BASED_NAME ) ,ndviet)
2223FFMPEG_BASED_TAG := $(or $(FFMPEG_BASED_TAG ) ,$(FFMPEG_BASED_TAG ) ,7.0-ubuntu2204)
24+ PLATFORMS := $(or $(PLATFORMS ) ,$(PLATFORMS ) ,linux/amd64)
2325
2426all : hub \
2527 distributor \
@@ -41,6 +43,11 @@ set_nightly_env:
4143 echo BASE_VERSION=$(BASE_VERSION_NIGHTLY ) > .env ; \
4244 echo BASE_RELEASE=$(BASE_RELEASE_NIGHTLY ) >> .env ;
4345
46+ docker_buildx_setup :
47+ sudo apt-get install --upgrade docker-buildx-plugin
48+ docker buildx version
49+ docker buildx use default
50+
4451build_nightly :
4552 BASE_VERSION=$(BASE_VERSION_NIGHTLY ) BASE_RELEASE=$(BASE_RELEASE_NIGHTLY ) make build
4653
@@ -49,94 +56,94 @@ build: all
4956ci : build test
5057
5158base :
52- cd ./Base && docker build $( BUILD_ARGS ) --build-arg VERSION=$(BASE_VERSION ) --build-arg RELEASE=$(BASE_RELEASE ) --build-arg AUTHORS=$(AUTHORS ) -t $(NAME ) /base:$(TAG_VERSION ) .
59+ cd ./Base && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) --load -- build-arg TARGETARCH= $( TARGETARCH ) --build-arg VERSION=$(BASE_VERSION ) --build-arg RELEASE=$(BASE_RELEASE ) --build-arg AUTHORS=$(AUTHORS ) --load -t $(NAME ) /base:$(TAG_VERSION ) .
5360
5461base_nightly :
55- cd ./Base && docker build $( BUILD_ARGS ) --build-arg VERSION=$(BASE_VERSION_NIGHTLY ) --build-arg RELEASE=$(BASE_RELEASE_NIGHTLY ) --build-arg AUTHORS=$(AUTHORS ) -t $(NAME ) /base:$(TAG_VERSION ) .
62+ cd ./Base && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) --build-arg VERSION=$(BASE_VERSION_NIGHTLY ) --build-arg RELEASE=$(BASE_RELEASE_NIGHTLY ) --build-arg AUTHORS=$(AUTHORS ) --load -t $(NAME ) /base:$(TAG_VERSION ) .
5663
5764hub : base
58- cd ./Hub && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) -t $(NAME ) /hub:$(TAG_VERSION ) .
65+ cd ./Hub && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --load -t $(NAME ) /hub:$(TAG_VERSION ) .
5966
6067distributor : base
61- cd ./Distributor && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) -t $(NAME ) /distributor:$(TAG_VERSION ) .
68+ cd ./Distributor && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --load -t $(NAME ) /distributor:$(TAG_VERSION ) .
6269
6370router : base
64- cd ./Router && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) -t $(NAME ) /router:$(TAG_VERSION ) .
71+ cd ./Router && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --load -t $(NAME ) /router:$(TAG_VERSION ) .
6572
6673sessions : base
67- cd ./Sessions && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) -t $(NAME ) /sessions:$(TAG_VERSION ) .
74+ cd ./Sessions && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --load -t $(NAME ) /sessions:$(TAG_VERSION ) .
6875
6976sessionqueue : base
70- cd ./SessionQueue && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) -t $(NAME ) /session-queue:$(TAG_VERSION ) .
77+ cd ./SessionQueue && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --load -t $(NAME ) /session-queue:$(TAG_VERSION ) .
7178
7279event_bus : base
73- cd ./EventBus && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) -t $(NAME ) /event-bus:$(TAG_VERSION ) .
80+ cd ./EventBus && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --load -t $(NAME ) /event-bus:$(TAG_VERSION ) .
7481
7582node_base : base
76- cd ./NodeBase && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) -t $(NAME ) /node-base:$(TAG_VERSION ) .
83+ cd ./NodeBase && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --load -t $(NAME ) /node-base:$(TAG_VERSION ) .
7784
7885chrome : node_base
79- cd ./NodeChrome && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) -t $(NAME ) /node-chrome:$(TAG_VERSION ) .
86+ cd ./NodeChrome && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --load -t $(NAME ) /node-chrome:$(TAG_VERSION ) .
8087
8188chrome_dev :
82- cd ./NodeChrome && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg CHROME_VERSION=google-chrome-unstable -t $(NAME ) /node-chrome:dev .
89+ cd ./NodeChrome && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg CHROME_VERSION=google-chrome-unstable --load -t $(NAME ) /node-chrome:dev .
8390
8491chrome_beta :
85- cd ./NodeChrome && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg CHROME_VERSION=google-chrome-beta -t $(NAME ) /node-chrome:beta .
92+ cd ./NodeChrome && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg CHROME_VERSION=google-chrome-beta --load -t $(NAME ) /node-chrome:beta .
8693
8794edge : node_base
88- cd ./NodeEdge && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) -t $(NAME ) /node-edge:$(TAG_VERSION ) .
95+ cd ./NodeEdge && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --load -t $(NAME ) /node-edge:$(TAG_VERSION ) .
8996
9097edge_dev :
91- cd ./NodeEdge && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg EDGE_VERSION=microsoft-edge-dev -t $(NAME ) /node-edge:dev .
98+ cd ./NodeEdge && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg EDGE_VERSION=microsoft-edge-dev --load -t $(NAME ) /node-edge:dev .
9299
93100edge_beta :
94- cd ./NodeEdge && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg EDGE_VERSION=microsoft-edge-beta -t $(NAME ) /node-edge:beta .
101+ cd ./NodeEdge && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg EDGE_VERSION=microsoft-edge-beta --load -t $(NAME ) /node-edge:beta .
95102
96103firefox : node_base
97- cd ./NodeFirefox && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) -t $(NAME ) /node-firefox:$(TAG_VERSION ) .
104+ cd ./NodeFirefox && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --load -t $(NAME ) /node-firefox:$(TAG_VERSION ) .
98105
99106firefox_dev :
100- cd ./NodeFirefox && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg FIREFOX_VERSION=nightly-latest -t $(NAME ) /node-firefox:dev .
107+ cd ./NodeFirefox && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --load --build-arg FIREFOX_VERSION=nightly-latest -t $(NAME ) /node-firefox:dev .
101108
102109firefox_beta :
103- cd ./NodeFirefox && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg FIREFOX_VERSION=beta-latest -t $(NAME ) /node-firefox:beta .
110+ cd ./NodeFirefox && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --load --build-arg FIREFOX_VERSION=beta-latest -t $(NAME ) /node-firefox:beta .
104111
105112docker : base
106- cd ./NodeDocker && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) -t $(NAME ) /node-docker:$(TAG_VERSION ) .
113+ cd ./NodeDocker && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --load -t $(NAME ) /node-docker:$(TAG_VERSION ) .
107114
108115standalone_docker : docker
109- cd ./StandaloneDocker && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) -t $(NAME ) /standalone-docker:$(TAG_VERSION ) .
116+ cd ./StandaloneDocker && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --load -t $(NAME ) /standalone-docker:$(TAG_VERSION ) .
110117
111118standalone_firefox : firefox
112- cd ./Standalone && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg BASE=node-firefox -t $(NAME ) /standalone-firefox:$(TAG_VERSION ) .
119+ cd ./Standalone && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg BASE=node-firefox --load -t $(NAME ) /standalone-firefox:$(TAG_VERSION ) .
113120
114121standalone_firefox_dev : firefox_dev
115- cd ./Standalone && docker build $( BUILD_ARGS ) --build-arg NAMESPACE=$(NAME ) --build-arg VERSION=dev --build-arg BASE=node-firefox -t $(NAME ) /standalone-firefox:dev .
122+ cd ./Standalone && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) --build-arg NAMESPACE=$(NAME ) --build-arg VERSION=dev --build-arg BASE=node-firefox --load -t $(NAME ) /standalone-firefox:dev .
116123
117124standalone_firefox_beta : firefox_beta
118- cd ./Standalone && docker build $( BUILD_ARGS ) --build-arg NAMESPACE=$(NAME ) --build-arg VERSION=beta --build-arg BASE=node-firefox -t $(NAME ) /standalone-firefox:beta .
125+ cd ./Standalone && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) --build-arg NAMESPACE=$(NAME ) --build-arg VERSION=beta --build-arg BASE=node-firefox --load -t $(NAME ) /standalone-firefox:beta .
119126
120127standalone_chrome : chrome
121- cd ./Standalone && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg BASE=node-chrome -t $(NAME ) /standalone-chrome:$(TAG_VERSION ) .
128+ cd ./Standalone && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg BASE=node-chrome --load -t $(NAME ) /standalone-chrome:$(TAG_VERSION ) .
122129
123130standalone_chrome_dev : chrome_dev
124- cd ./Standalone && docker build $( BUILD_ARGS ) --build-arg NAMESPACE=$(NAME ) --build-arg VERSION=dev --build-arg BASE=node-chrome -t $(NAME ) /standalone-chrome:dev .
131+ cd ./Standalone && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) --build-arg NAMESPACE=$(NAME ) --build-arg VERSION=dev --build-arg BASE=node-chrome --load -t $(NAME ) /standalone-chrome:dev .
125132
126133standalone_chrome_beta : chrome_beta
127- cd ./Standalone && docker build $(BUILD_ARGS ) --build-arg NAMESPACE=$(NAME ) --build-arg VERSION=beta --build-arg BASE=node-chrome -t $(NAME ) /standalone-chrome:beta .
134+ cd ./Standalone && docker buildx build --platform $( PLATFORMS ) $(BUILD_ARGS ) --build-arg NAMESPACE=$(NAME ) --build-arg VERSION=beta --build-arg BASE=node-chrome -t $(NAME ) /standalone-chrome:beta .
128135
129136standalone_edge : edge
130- cd ./Standalone && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg BASE=node-edge -t $(NAME ) /standalone-edge:$(TAG_VERSION ) .
137+ cd ./Standalone && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg BASE=node-edge --load -t $(NAME ) /standalone-edge:$(TAG_VERSION ) .
131138
132139standalone_edge_dev : edge_dev
133- cd ./Standalone && docker build $( BUILD_ARGS ) --build-arg NAMESPACE=$(NAME ) --build-arg VERSION=dev --build-arg BASE=node-edge -t $(NAME ) /standalone-edge:dev .
140+ cd ./Standalone && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) --build-arg NAMESPACE=$(NAME ) --build-arg VERSION=dev --build-arg BASE=node-edge --load -t $(NAME ) /standalone-edge:dev .
134141
135142standalone_edge_beta : edge_beta
136- cd ./Standalone && docker build $( BUILD_ARGS ) --build-arg NAMESPACE=$(NAME ) --build-arg VERSION=beta --build-arg BASE=node-edge -t $(NAME ) /standalone-edge:beta .
143+ cd ./Standalone && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) --build-arg NAMESPACE=$(NAME ) --build-arg VERSION=beta --build-arg BASE=node-edge --load -t $(NAME ) /standalone-edge:beta .
137144
138145video :
139- cd ./Video && docker build $( BUILD_ARGS ) --build-arg NAMESPACE=$(FFMPEG_BASED_NAME ) --build-arg BASED_TAG=$(FFMPEG_BASED_TAG ) -t $(NAME ) /video:$(FFMPEG_TAG_VERSION ) -$(BUILD_DATE ) .
146+ cd ./Video && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) --build-arg NAMESPACE=$(FFMPEG_BASED_NAME ) --build-arg BASED_TAG=$(FFMPEG_BASED_TAG ) --load -t $(NAME ) /video:$(FFMPEG_TAG_VERSION ) -$(BUILD_DATE ) .
140147
141148count_image_layers :
142149 docker history $(NAME ) /base:$(TAG_VERSION ) -q | wc -l
@@ -158,22 +165,22 @@ count_image_layers:
158165 docker history $(NAME ) /video:$(FFMPEG_TAG_VERSION ) -$(BUILD_DATE ) -q | wc -l
159166
160167chrome_upgrade_version :
161- cd ./NodeChrome && docker build $( BUILD_ARGS ) --build-arg NAMESPACE=$(NAMESPACE ) --build-arg VERSION=$(VERSION ) --build-arg AUTHORS=$(AUTHORS ) -t $(NAME ) /node-chrome:$(TAG_VERSION ) .
162- cd ./Standalone && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg BASE=node-chrome -t $(NAME ) /standalone-chrome:$(TAG_VERSION ) .
168+ cd ./NodeChrome && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) --build-arg NAMESPACE=$(NAMESPACE ) --build-arg VERSION=$(VERSION ) --build-arg AUTHORS=$(AUTHORS ) --load -t $(NAME ) /node-chrome:$(TAG_VERSION ) .
169+ cd ./Standalone && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg BASE=node-chrome --load -t $(NAME ) /standalone-chrome:$(TAG_VERSION ) .
163170 docker run --rm $(NAME ) /standalone-chrome:$(TAG_VERSION ) /opt/selenium/selenium-server.jar info --version
164171 docker run --rm $(NAME ) /standalone-chrome:$(TAG_VERSION ) google-chrome --version
165172 docker run --rm $(NAME ) /standalone-chrome:$(TAG_VERSION ) chromedriver --version
166173
167174firefox_upgrade_version :
168- cd ./NodeFirefox && docker build $( BUILD_ARGS ) --build-arg NAMESPACE=$(NAMESPACE ) --build-arg VERSION=$(VERSION ) --build-arg AUTHORS=$(AUTHORS ) -t $(NAME ) /node-firefox:$(TAG_VERSION ) .
169- cd ./Standalone && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg BASE=node-firefox -t $(NAME ) /standalone-firefox:$(TAG_VERSION ) .
175+ cd ./NodeFirefox && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) --build-arg NAMESPACE=$(NAMESPACE ) --build-arg VERSION=$(VERSION ) --build-arg AUTHORS=$(AUTHORS ) --load -t $(NAME ) /node-firefox:$(TAG_VERSION ) .
176+ cd ./Standalone && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg BASE=node-firefox --load -t $(NAME ) /standalone-firefox:$(TAG_VERSION ) .
170177 docker run --rm $(NAME ) /standalone-firefox:$(TAG_VERSION ) /opt/selenium/selenium-server.jar info --version
171178 docker run --rm $(NAME ) /standalone-firefox:$(TAG_VERSION ) firefox --version
172179 docker run --rm $(NAME ) /standalone-firefox:$(TAG_VERSION ) geckodriver --version
173180
174181edge_upgrade_version :
175- cd ./NodeEdge && docker build $( BUILD_ARGS ) --build-arg NAMESPACE=$(NAMESPACE ) --build-arg VERSION=$(VERSION ) --build-arg AUTHORS=$(AUTHORS ) -t $(NAME ) /node-edge:$(TAG_VERSION ) .
176- cd ./Standalone && docker build $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg BASE=node-edge -t $(NAME ) /standalone-edge:$(TAG_VERSION ) .
182+ cd ./NodeEdge && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) --build-arg NAMESPACE=$(NAMESPACE ) --build-arg VERSION=$(VERSION ) --build-arg AUTHORS=$(AUTHORS ) --load -t $(NAME ) /node-edge:$(TAG_VERSION ) .
183+ cd ./Standalone && docker buildx build --platform $( PLATFORMS ) $( BUILD_ARGS ) $(FROM_IMAGE_ARGS ) --build-arg BASE=node-edge --load -t $(NAME ) /standalone-edge:$(TAG_VERSION ) .
177184 docker run --rm $(NAME ) /standalone-edge:$(TAG_VERSION ) /opt/selenium/selenium-server.jar info --version
178185 docker run --rm $(NAME ) /standalone-edge:$(TAG_VERSION ) microsoft-edge --version
179186 docker run --rm $(NAME ) /standalone-edge:$(TAG_VERSION ) msedgedriver --version
0 commit comments