@@ -130,25 +130,53 @@ $(OSPARC_GATEWAY_CONFIG_FILE_HOST): services/osparc-gateway-server/config/defaul
130
130
@echo " WARNING ##### $@ does not exist, cloning $< as $@ ############" ; cp $< $@ )
131
131
132
132
133
+ # REFERENCE: https://github.com/docker/compose/issues/9306
134
+ # composeV2 defines specifications for docker compose to run
135
+ # they are not 100% compatible with what docker stack deploy command expects
136
+ # some parts have to be modified
137
+ define generate_docker_compose_specs
138
+ docker --log-level=ERROR compose --env-file .env \
139
+ $(foreach file,$1,--file=$(file ) ) \
140
+ config \
141
+ | sed '/published:/s/"//g' \
142
+ | sed '/size:/s/"//g' \
143
+ | sed '1 { /name:.*/d ; }' \
144
+ | sed '1 i\version: \"3.9\"' \
145
+ | sed --regexp-extended "s/cpus: ([0-9\\.]+)/cpus: '\\1'/" \
146
+ > $@
147
+ endef
148
+
149
+
133
150
.stack-$(SWARM_STACK_NAME ) -development.yml : .env $(docker-compose-configs )
134
151
# Creating config for stack with 'local/{service}:development' to $@
135
152
@export DOCKER_REGISTRY=local \
136
153
export DOCKER_IMAGE_TAG=development; \
137
- docker-compose --env-file .env --file services/docker-compose.yml --file services/docker-compose.local.yml --file services/docker-compose.devel.yml --log-level=ERROR config > $@
154
+ $(call generate_docker_compose_specs,\
155
+ services/docker-compose.yml \
156
+ services/docker-compose.local.yml \
157
+ services/docker-compose.devel.yml\
158
+ )
138
159
139
160
.stack-$(SWARM_STACK_NAME ) -production.yml : .env $(docker-compose-configs )
140
161
# Creating config for stack with 'local/{service}:production' to $@
141
162
@export DOCKER_REGISTRY=local; \
142
163
export DOCKER_IMAGE_TAG=production; \
143
- docker-compose --env-file .env --file services/docker-compose.yml --file services/docker-compose.local.yml --log-level=ERROR config > $@
164
+ $(call generate_docker_compose_specs,\
165
+ services/docker-compose.yml \
166
+ services/docker-compose.local.yml\
167
+ )
144
168
145
169
.stack-$(SWARM_STACK_NAME ) -version.yml : .env $(docker-compose-configs )
146
170
# Creating config for stack with '$(DOCKER_REGISTRY)/{service}:${DOCKER_IMAGE_TAG}' to $@
147
- @docker-compose --env-file .env --file services/docker-compose.yml --file services/docker-compose.local.yml --log-level=ERROR config > $@
171
+ @$(call generate_docker_compose_specs,\
172
+ services/docker-compose.yml \
173
+ services/docker-compose.local.yml\
174
+ )
148
175
149
176
.stack-$(SWARM_STACK_NAME ) -ops.yml : .env $(docker-compose-configs )
150
177
# Creating config for ops stack to $@
151
- @docker-compose --env-file .env --file services/docker-compose-ops.yml --log-level=ERROR config > $@
178
+ @$(call generate_docker_compose_specs,\
179
+ services/docker-compose-ops.yml)
152
180
153
181
154
182
.PHONY : up-devel up-prod up-version up-latest
@@ -194,7 +222,7 @@ ifeq ($(target),)
194
222
@$(MAKE) .deploy-ops
195
223
else
196
224
# deploys ONLY $(target) service
197
- @docker- compose --file $< up --detach $(target)
225
+ @docker compose --file $< up --detach $(target)
198
226
endif
199
227
@$(_show_endpoints)
200
228
@@ -214,6 +242,7 @@ down: ## Stops and removes stack
214
242
-@docker stack rm $(SWARM_STACK_NAME ) -ops
215
243
# Removing generated docker compose configurations, i.e. .stack-*
216
244
-@rm $(wildcard .stack-* )
245
+ -@rm $(wildcard $(OSPARC_GATEWAY_CONFIG_FILE_HOST ) )
217
246
218
247
leave : # # Forces to stop all services, networks, etc by the node leaving the swarm
219
248
-docker swarm leave -f
@@ -255,7 +284,7 @@ tag-latest: ## Tags last locally built production images as '${DOCKER_REGISTRY}/
255
284
256
285
pull-version : .env # # pulls images from DOCKER_REGISTRY tagged as DOCKER_IMAGE_TAG
257
286
# Pulling images '${DOCKER_REGISTRY}/{service}:${DOCKER_IMAGE_TAG}'
258
- @docker- compose --file services/docker-compose-deploy.yml pull
287
+ @docker compose --file services/docker-compose-deploy.yml pull
259
288
260
289
261
290
.PHONY : push-version push-latest
@@ -268,7 +297,7 @@ push-latest: tag-latest
268
297
push-version : tag-version
269
298
# pushing '${DOCKER_REGISTRY}/{service}:${DOCKER_IMAGE_TAG}'
270
299
@export BUILD_TARGET=undefined; \
271
- docker- compose --file services/docker-compose-build.yml --file services/docker-compose-deploy.yml push
300
+ docker compose --file services/docker-compose-build.yml --file services/docker-compose-deploy.yml push
272
301
273
302
# # ENVIRONMENT -------------------------------
274
303
@@ -277,7 +306,7 @@ push-version: tag-version
277
306
.venv :
278
307
python3 -m venv $@
279
308
$@ /bin/pip3 --quiet install --upgrade \
280
- pip~=21.3 \
309
+ pip~=23.0 \
281
310
wheel \
282
311
setuptools
283
312
@@ -317,7 +346,7 @@ info: ## displays setup information
317
346
@echo ' node : $(shell node --version 2> /dev/null || echo ERROR nodejs missing)'
318
347
@echo ' docker : $(shell docker --version)'
319
348
@echo ' docker buildx : $(shell docker buildx version)'
320
- @echo ' docker-compose: $(shell docker- compose --version)'
349
+ @echo ' docker-compose: $(shell docker compose --version)'
321
350
322
351
323
352
define show-meta
0 commit comments