@@ -12,14 +12,16 @@ CHART_VERSION_NIGHTLY := $(or $(CHART_VERSION_NIGHTLY),$(CHART_VERSION_NIGHTLY),
12
12
NAMESPACE := $(or $(NAMESPACE ) ,$(NAMESPACE ) ,$(NAME ) )
13
13
AUTHORS := $(or $(AUTHORS ) ,$(AUTHORS ) ,SeleniumHQ)
14
14
PUSH_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 )
16
17
BUILD_ARGS := $(BUILD_ARGS )
17
18
MAJOR := $(word 1,$(subst ., ,$(TAG_VERSION ) ) )
18
19
MINOR := $(word 2,$(subst ., ,$(TAG_VERSION ) ) )
19
20
MAJOR_MINOR_PATCH := $(word 1,$(subst -, ,$(TAG_VERSION ) ) )
20
21
FFMPEG_TAG_VERSION := $(or $(FFMPEG_TAG_VERSION ) ,$(FFMPEG_TAG_VERSION ) ,ffmpeg-7.0)
21
22
FFMPEG_BASED_NAME := $(or $(FFMPEG_BASED_NAME ) ,$(FFMPEG_BASED_NAME ) ,ndviet)
22
23
FFMPEG_BASED_TAG := $(or $(FFMPEG_BASED_TAG ) ,$(FFMPEG_BASED_TAG ) ,7.0-ubuntu2204)
24
+ PLATFORMS := $(or $(PLATFORMS ) ,$(PLATFORMS ) ,linux/amd64)
23
25
24
26
all : hub \
25
27
distributor \
@@ -41,6 +43,11 @@ set_nightly_env:
41
43
echo BASE_VERSION=$(BASE_VERSION_NIGHTLY ) > .env ; \
42
44
echo BASE_RELEASE=$(BASE_RELEASE_NIGHTLY ) >> .env ;
43
45
46
+ docker_buildx_setup :
47
+ sudo apt-get install --upgrade docker-buildx-plugin
48
+ docker buildx version
49
+ docker buildx use default
50
+
44
51
build_nightly :
45
52
BASE_VERSION=$(BASE_VERSION_NIGHTLY ) BASE_RELEASE=$(BASE_RELEASE_NIGHTLY ) make build
46
53
@@ -49,94 +56,94 @@ build: all
49
56
ci : build test
50
57
51
58
base :
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 ) .
53
60
54
61
base_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 ) .
56
63
57
64
hub : 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 ) .
59
66
60
67
distributor : 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 ) .
62
69
63
70
router : 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 ) .
65
72
66
73
sessions : 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 ) .
68
75
69
76
sessionqueue : 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 ) .
71
78
72
79
event_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 ) .
74
81
75
82
node_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 ) .
77
84
78
85
chrome : 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 ) .
80
87
81
88
chrome_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 .
83
90
84
91
chrome_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 .
86
93
87
94
edge : 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 ) .
89
96
90
97
edge_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 .
92
99
93
100
edge_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 .
95
102
96
103
firefox : 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 ) .
98
105
99
106
firefox_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 .
101
108
102
109
firefox_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 .
104
111
105
112
docker : 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 ) .
107
114
108
115
standalone_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 ) .
110
117
111
118
standalone_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 ) .
113
120
114
121
standalone_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 .
116
123
117
124
standalone_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 .
119
126
120
127
standalone_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 ) .
122
129
123
130
standalone_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 .
125
132
126
133
standalone_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 .
128
135
129
136
standalone_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 ) .
131
138
132
139
standalone_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 .
134
141
135
142
standalone_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 .
137
144
138
145
video :
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 ) .
140
147
141
148
count_image_layers :
142
149
docker history $(NAME ) /base:$(TAG_VERSION ) -q | wc -l
@@ -158,22 +165,22 @@ count_image_layers:
158
165
docker history $(NAME ) /video:$(FFMPEG_TAG_VERSION ) -$(BUILD_DATE ) -q | wc -l
159
166
160
167
chrome_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 ) .
163
170
docker run --rm $(NAME ) /standalone-chrome:$(TAG_VERSION ) /opt/selenium/selenium-server.jar info --version
164
171
docker run --rm $(NAME ) /standalone-chrome:$(TAG_VERSION ) google-chrome --version
165
172
docker run --rm $(NAME ) /standalone-chrome:$(TAG_VERSION ) chromedriver --version
166
173
167
174
firefox_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 ) .
170
177
docker run --rm $(NAME ) /standalone-firefox:$(TAG_VERSION ) /opt/selenium/selenium-server.jar info --version
171
178
docker run --rm $(NAME ) /standalone-firefox:$(TAG_VERSION ) firefox --version
172
179
docker run --rm $(NAME ) /standalone-firefox:$(TAG_VERSION ) geckodriver --version
173
180
174
181
edge_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 ) .
177
184
docker run --rm $(NAME ) /standalone-edge:$(TAG_VERSION ) /opt/selenium/selenium-server.jar info --version
178
185
docker run --rm $(NAME ) /standalone-edge:$(TAG_VERSION ) microsoft-edge --version
179
186
docker run --rm $(NAME ) /standalone-edge:$(TAG_VERSION ) msedgedriver --version
0 commit comments