From 0462d74b156538a0992c49c2985b8e260723b453 Mon Sep 17 00:00:00 2001 From: leandrofars Date: Thu, 4 Jul 2024 20:18:20 -0300 Subject: [PATCH] feat(file-server): build and release --- backend/services/utils/file-server/.gitignore | 3 +- .../utils/file-server/build/Dockerfile | 8 +++ .../services/utils/file-server/build/Makefile | 61 +++++++++++++++++++ build/Makefile | 2 + 4 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 backend/services/utils/file-server/build/Dockerfile create mode 100644 backend/services/utils/file-server/build/Makefile diff --git a/backend/services/utils/file-server/.gitignore b/backend/services/utils/file-server/.gitignore index 0835f35..943b9ca 100644 --- a/backend/services/utils/file-server/.gitignore +++ b/backend/services/utils/file-server/.gitignore @@ -1,2 +1,3 @@ firmwares/ -.env.local \ No newline at end of file +.env.local +images/ \ No newline at end of file diff --git a/backend/services/utils/file-server/build/Dockerfile b/backend/services/utils/file-server/build/Dockerfile new file mode 100644 index 0000000..25700be --- /dev/null +++ b/backend/services/utils/file-server/build/Dockerfile @@ -0,0 +1,8 @@ +FROM golang:1.22.2@sha256:450e3822c7a135e1463cd83e51c8e2eb03b86a02113c89424e6f0f8344bb4168 as builder +WORKDIR /app +COPY ../ . +RUN CGO_ENABLED=0 GOOS=linux go build -o file-server main.go + +FROM alpine:3.14@sha256:0f2d5c38dd7a4f4f733e688e3a6733cb5ab1ac6e3cb4603a5dd564e5bfb80eed +COPY --from=builder /app/file-server / +ENTRYPOINT ["/file-server"] \ No newline at end of file diff --git a/backend/services/utils/file-server/build/Makefile b/backend/services/utils/file-server/build/Makefile new file mode 100644 index 0000000..a35adde --- /dev/null +++ b/backend/services/utils/file-server/build/Makefile @@ -0,0 +1,61 @@ +.PHONY: help build push start stop release remove delete run logs bash + +DOCKER_USER ?= oktopusp +DOCKER_APP ?= file-server +DOCKER_TAG ?= $(shell git log --format="%h" -n 1) +CONTAINER_SHELL ?= /bin/sh + +.DEFAULT_GOAL := help + +help: + @echo "Makefile arguments:" + @echo "" + @echo "DOCKER_USER - docker user to build image" + @echo "DOCKER_APP - docker image name" + @echo "DOCKER_TAG - docker image tag" + @echo "CONTAINER_SHELL - container shell e.g:'/bin/bash'" + @echo "" + @echo "Makefile commands:" + @echo "" + @echo "build - docker image build" + @echo "push - push docker iamge to registry" + @echo "run - create and start docker container with the image" + @echo "start - start existent docker container with the image" + @echo "stop - stop docker container running the image" + @echo "remove - remove docker container running the image" + @echo "delete - delete docker image" + @echo "logs - show logs of docker container" + @echo "bash - access container shell" + @echo "release - tag image as latest and push to registry" + +build: + @docker build -t ${DOCKER_USER}/${DOCKER_APP}:${DOCKER_TAG} -f Dockerfile ../ + +run: + @docker run -d --name ${DOCKER_USER}-${DOCKER_APP} ${DOCKER_USER}/${DOCKER_APP}:${DOCKER_TAG} + +stop: + @docker stop ${DOCKER_USER}-${DOCKER_APP} + +remove: stop + @docker rm ${DOCKER_USER}-${DOCKER_APP} + +delete: + @docker rmi ${DOCKER_USER}/${DOCKER_APP}:${DOCKER_TAG} + +start: + @docker start ${DOCKER_USER}-${DOCKER_APP} + +push: + @docker push ${DOCKER_USER}/${DOCKER_APP}:${DOCKER_TAG} + +logs: + @docker logs -f ${DOCKER_USER}-${DOCKER_APP} + +bash: + @docker exec -it ${DOCKER_USER}-${DOCKER_APP} ${CONTAINER_SHELL} + +release: build + @docker push ${DOCKER_USER}/${DOCKER_APP}:${DOCKER_TAG} + @docker tag ${DOCKER_USER}/${DOCKER_APP}:${DOCKER_TAG} ${DOCKER_USER}/${DOCKER_APP}:latest + @docker push ${DOCKER_USER}/${DOCKER_APP}:latest \ No newline at end of file diff --git a/build/Makefile b/build/Makefile index c87bf00..3e41492 100644 --- a/build/Makefile +++ b/build/Makefile @@ -26,6 +26,7 @@ build-backend: @make build -C ../backend/services/controller/build/ DOCKER_USER=${DOCKER_USER} @make build -C ../backend/services/acs/build/ DOCKER_USER=${DOCKER_USER} @make build -C ../backend/services/utils/socketio/build/ DOCKER_USER=${DOCKER_USER} + @make build -C ../backend/services/utils/file-server/build/ DOCKER_USER=${DOCKER_USER} @make build -C ../backend/services/mtp/adapter/build/ DOCKER_USER=${DOCKER_USER} @make build -C ../backend/services/mtp/ws-adapter/build/ DOCKER_USER=${DOCKER_USER} @make build -C ../backend/services/mtp/ws/build/ DOCKER_USER=${DOCKER_USER} @@ -43,6 +44,7 @@ release-backend: @make release -C ../backend/services/controller/build/ DOCKER_USER=${DOCKER_USER} @make release -C ../backend/services/acs/build/ DOCKER_USER=${DOCKER_USER} @make release -C ../backend/services/utils/socketio/build/ DOCKER_USER=${DOCKER_USER} + @make release -C ../backend/services/utils/file-server/build/ DOCKER_USER=${DOCKER_USER} @make release -C ../backend/services/mtp/adapter/build/ DOCKER_USER=${DOCKER_USER} @make release -C ../backend/services/mtp/ws-adapter/build/ DOCKER_USER=${DOCKER_USER} @make release -C ../backend/services/mtp/ws/build/ DOCKER_USER=${DOCKER_USER}