@@ -21,6 +21,7 @@ OS := linux
21
21
DOCKER_IMAGE_NAME := $(shell echo $(PROJECT_NAME ) | tr '[:upper:]' '[:lower:]') :$(VERSION )
22
22
DOCKER_COMPOSE := docker-compose
23
23
DOCKER_COMPOSE_FILE := $(PROJECT_ROOT ) /docker-compose.yml
24
+ DOCKER_PACKAGE_NAME := goptivum
24
25
25
26
DOCKERHUB_USERNAME ?= smeggmann99
26
27
@@ -52,13 +53,13 @@ build-web-install: | $(CURRENT_BUILD_DIR)
52
53
package : all
53
54
@echo " Packaging tarballs for version $( VERSION) ..."
54
55
@for arch in $(ARCHS ) ; do \
55
- BUILD_ARCHIVE=$(BUILD_DIR ) /$(PROJECT_NAME ) -$(VERSION ) -$(OS ) -static-$$ arch.tar.gz; \
56
+ BUILD_ARCHIVE=$(BUILD_DIR ) /$(shell echo $( PROJECT_NAME ) | tr '[:upper:]' '[:lower:]' ) -$(VERSION ) -$(OS ) -static-$$ arch.tar.gz; \
56
57
echo " Building for $$ arch..." ; \
57
58
TEMP_DIR=$(BUILD_DIR ) /temp_$$ arch; \
58
59
mkdir -p $$ TEMP_DIR/Goptivum; \
59
60
GOOS=$(OS ) GOARCH=$$ arch CGO_ENABLED=0 go build -a -installsuffix cgo -o $$ TEMP_DIR/Goptivum/$(BINARY_NAME ) $(BACKEND_SOURCE_DIR ) ; \
60
61
cp -r $(CURRENT_BUILD_DIR ) /config.json $$ TEMP_DIR/Goptivum/config.json; \
61
- cp -r $(CURRENT_BUILD_DIR ) /.env $$ TEMP_DIR/Goptivum/.env; \
62
+ sed ' s/^OPENWEATHER_API_KEY=.*/OPENWEATHER_API_KEY=""/ ' $(CURRENT_BUILD_DIR ) /.env > $$ TEMP_DIR/Goptivum/.env; \
62
63
cp -r $(DIST_DIR ) $$ TEMP_DIR/Goptivum/dist; \
63
64
echo " Creating archive $$ BUILD_ARCHIVE..." ; \
64
65
tar -czvf $$ BUILD_ARCHIVE -C $$ TEMP_DIR Goptivum; \
@@ -89,11 +90,23 @@ docker-clean:
89
90
.PHONY : docker-publish
90
91
docker-publish : docker-build
91
92
@echo " Tagging Docker image for publishing..."
92
- @docker tag goptivum :$(VERSION ) $(DOCKERHUB_USERNAME ) /goptivum :$(VERSION )
93
- @docker tag goptivum :$(VERSION ) $(DOCKERHUB_USERNAME ) /goptivum :latest
93
+ @docker tag $( DOCKERHUB_USERNAME ) / $( DOCKER_PACKAGE_NAME ) :$(VERSION ) $(DOCKERHUB_USERNAME ) /$( DOCKER_PACKAGE_NAME ) :$(VERSION )
94
+ @docker tag $( DOCKERHUB_USERNAME ) / $( DOCKER_PACKAGE_NAME ) :$(VERSION ) $(DOCKERHUB_USERNAME ) /$( DOCKER_PACKAGE_NAME ) :latest
94
95
@echo " Pushing Docker image to Docker Hub..."
95
- @docker push $(DOCKERHUB_USERNAME ) /goptivum:$(VERSION )
96
- @docker push $(DOCKERHUB_USERNAME ) /goptivum:latest
96
+ @docker push $(DOCKERHUB_USERNAME ) /$(DOCKER_PACKAGE_NAME ) :$(VERSION )
97
+ @docker push $(DOCKERHUB_USERNAME ) /$(DOCKER_PACKAGE_NAME ) :latest
98
+
99
+ .PHONY : docker-build-publish
100
+ docker-build-publish :
101
+ @echo " Building and publishing multi-architecture Docker images..."
102
+ @docker buildx build \
103
+ --platform linux/amd64,linux/arm64,linux/arm \
104
+ --build-arg VERSION=$(VERSION ) \
105
+ --tag $(DOCKERHUB_USERNAME ) /$(DOCKER_PACKAGE_NAME ) :$(VERSION ) \
106
+ --tag $(DOCKERHUB_USERNAME ) /$(DOCKER_PACKAGE_NAME ) :latest \
107
+ --push \
108
+ -f $(PROJECT_ROOT ) /dockerfile $(PROJECT_ROOT )
109
+ @echo " Docker images built and published for architectures: amd64, arm64, arm."
97
110
98
111
.PHONY : clean
99
112
clean :
0 commit comments