Skip to content

Commit e4c3842

Browse files
committed
added cross compilation for docker image, removed whitespaces from env template
1 parent b828c6d commit e4c3842

File tree

2 files changed

+26
-13
lines changed

2 files changed

+26
-13
lines changed

app/.env.template

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
DB_FILE_PATH = "./db"
1+
DB_FILE_PATH="./db"
22

3-
GIN_MODE = "release"
4-
DIST_PATH = "./dist"
3+
GIN_MODE="release"
4+
DIST_PATH="./dist"
55

6-
CONFIG_PATH = "./"
7-
CONFIG_TYPE = "json"
8-
CONFIG_PURPOSE = "prod"
6+
CONFIG_PATH="./"
7+
CONFIG_TYPE="json"
8+
CONFIG_PURPOSE="prod"
99

10-
OPENWEATHER_API_KEY = ""
10+
OPENWEATHER_API_KEY=""

makefile

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ OS := linux
2121
DOCKER_IMAGE_NAME := $(shell echo $(PROJECT_NAME) | tr '[:upper:]' '[:lower:]'):$(VERSION)
2222
DOCKER_COMPOSE := docker-compose
2323
DOCKER_COMPOSE_FILE := $(PROJECT_ROOT)/docker-compose.yml
24+
DOCKER_PACKAGE_NAME := goptivum
2425

2526
DOCKERHUB_USERNAME ?= smeggmann99
2627

@@ -52,13 +53,13 @@ build-web-install: | $(CURRENT_BUILD_DIR)
5253
package: all
5354
@echo "Packaging tarballs for version $(VERSION)..."
5455
@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; \
5657
echo "Building for $$arch..."; \
5758
TEMP_DIR=$(BUILD_DIR)/temp_$$arch; \
5859
mkdir -p $$TEMP_DIR/Goptivum; \
5960
GOOS=$(OS) GOARCH=$$arch CGO_ENABLED=0 go build -a -installsuffix cgo -o $$TEMP_DIR/Goptivum/$(BINARY_NAME) $(BACKEND_SOURCE_DIR); \
6061
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; \
6263
cp -r $(DIST_DIR) $$TEMP_DIR/Goptivum/dist; \
6364
echo "Creating archive $$BUILD_ARCHIVE..."; \
6465
tar -czvf $$BUILD_ARCHIVE -C $$TEMP_DIR Goptivum; \
@@ -89,11 +90,23 @@ docker-clean:
8990
.PHONY: docker-publish
9091
docker-publish: docker-build
9192
@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
9495
@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."
97110

98111
.PHONY: clean
99112
clean:

0 commit comments

Comments
 (0)