feat: build system + docker compose for backend services
This commit is contained in:
parent
c891500b4b
commit
b51614e5c8
|
|
@ -72,7 +72,7 @@ This repository aims to promote the development of a multi-vendor management pla
|
|||
Run app using Docker:
|
||||
<pre>
|
||||
user@user-laptop:~$ cd oktopus/deploy/compose
|
||||
user@user-laptop:~/oktopus/deploy/compose$ docker compose up
|
||||
user@user-laptop:~/oktopus/deploy/compose$ COMPOSE_PROFILES=nats,controller,mqtt,stomp,ws,adapter,frontend,portainer docker compose up -d
|
||||
</pre>
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
|||
8
backend/services/controller/build/Dockerfile
Normal file
8
backend/services/controller/build/Dockerfile
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
FROM golang:1.22@sha256:82e07063a1ac3ee59e6f38b1222e32ce88469e4431ff6496cc40fb9a0fc18229 as builder
|
||||
WORKDIR /app
|
||||
COPY ../ .
|
||||
RUN CGO_ENABLED=0 GOOS=linux go build -o controller cmd/controller/main.go
|
||||
|
||||
FROM alpine:3.14@sha256:0f2d5c38dd7a4f4f733e688e3a6733cb5ab1ac6e3cb4603a5dd564e5bfb80eed
|
||||
COPY --from=builder /app/controller /
|
||||
ENTRYPOINT ["/controller"]
|
||||
61
backend/services/controller/build/Makefile
Normal file
61
backend/services/controller/build/Makefile
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
.PHONY: help build push start stop release remove delete run logs bash
|
||||
|
||||
DOCKER_USER ?= oktopusp
|
||||
DOCKER_APP ?= controller
|
||||
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
|
||||
8
backend/services/mtp/adapter/build/Dockerfile
Normal file
8
backend/services/mtp/adapter/build/Dockerfile
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
FROM golang:1.22@sha256:82e07063a1ac3ee59e6f38b1222e32ce88469e4431ff6496cc40fb9a0fc18229 as builder
|
||||
WORKDIR /app
|
||||
COPY ../ .
|
||||
RUN CGO_ENABLED=0 GOOS=linux go build -o adapter cmd/adapter/main.go
|
||||
|
||||
FROM alpine:3.14@sha256:0f2d5c38dd7a4f4f733e688e3a6733cb5ab1ac6e3cb4603a5dd564e5bfb80eed
|
||||
COPY --from=builder /app/adapter /
|
||||
ENTRYPOINT ["/adapter"]
|
||||
61
backend/services/mtp/adapter/build/Makefile
Normal file
61
backend/services/mtp/adapter/build/Makefile
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
.PHONY: help build push start stop release remove delete run logs bash
|
||||
|
||||
DOCKER_USER ?= oktopusp
|
||||
DOCKER_APP ?= adapter
|
||||
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
|
||||
8
backend/services/mtp/mqtt-adapter/build/Dockerfile
Normal file
8
backend/services/mtp/mqtt-adapter/build/Dockerfile
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
FROM golang:1.22@sha256:82e07063a1ac3ee59e6f38b1222e32ce88469e4431ff6496cc40fb9a0fc18229 as builder
|
||||
WORKDIR /app
|
||||
COPY ../ .
|
||||
RUN CGO_ENABLED=0 GOOS=linux go build -o mqtt-adapter cmd/mqtt-adapter/main.go
|
||||
|
||||
FROM alpine:3.14@sha256:0f2d5c38dd7a4f4f733e688e3a6733cb5ab1ac6e3cb4603a5dd564e5bfb80eed
|
||||
COPY --from=builder /app/mqtt-adapter /
|
||||
ENTRYPOINT ["/mqtt-adapter"]
|
||||
61
backend/services/mtp/mqtt-adapter/build/Makefile
Normal file
61
backend/services/mtp/mqtt-adapter/build/Makefile
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
.PHONY: help build push start stop release remove delete run logs bash
|
||||
|
||||
DOCKER_USER ?= oktopusp
|
||||
DOCKER_APP ?= mqtt-adapter
|
||||
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
|
||||
|
|
@ -5,5 +5,4 @@ RUN CGO_ENABLED=0 GOOS=linux go build -o mqtt cmd/mqtt/main.go
|
|||
|
||||
FROM alpine:3.14@sha256:0f2d5c38dd7a4f4f733e688e3a6733cb5ab1ac6e3cb4603a5dd564e5bfb80eed
|
||||
COPY --from=builder /app/mqtt /
|
||||
EXPOSE 1883 8883
|
||||
ENTRYPOINT ["/mqtt"]
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
.PHONY: help build push start stop release remove delete run logs bash
|
||||
|
||||
DOCKER_USER ?= oktopus
|
||||
DOCKER_USER ?= oktopusp
|
||||
DOCKER_APP ?= mqtt
|
||||
DOCKER_TAG ?= $(shell git log --format="%h" -n 1)
|
||||
CONTAINER_SHELL ?= /bin/sh
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ func NewConfig() Config {
|
|||
fullchain := flag.String("full_chain_path", lookupEnvOrString("FULL_CHAIN_PATH", ""), "path to fullchain.pem certificate")
|
||||
privkey := flag.String("private_key_path", lookupEnvOrString("PRIVATE_KEY_PATH", ""), "path to privkey.pem certificate")
|
||||
authFile := flag.String("auth_file_path", lookupEnvOrString("AUTH_FILE_PATH", ""), "path to MQTT RBAC auth file")
|
||||
redisEnable := flag.Bool("redis_enable", lookupEnvOrBool("REDIS_ENABLE", false), "enable/disable Redis db")
|
||||
redisAddr := flag.String("redis_addr", lookupEnvOrString("REDIS_ADDR", "172.17.0.2:6379"), "address of redis db")
|
||||
redisEnable := flag.Bool("redis_enable", lookupEnvOrBool("REDIS_ENABLE", true), "enable/disable Redis db")
|
||||
redisAddr := flag.String("redis_addr", lookupEnvOrString("REDIS_ADDR", "localhost:6379"), "address of redis db")
|
||||
redisPassword := flag.String("redis_passwd", lookupEnvOrString("REDIS_PASSWD", ""), "redis db password")
|
||||
wsEnable := flag.Bool("ws_enable", lookupEnvOrBool("WS_ENABLE", false), "enable/disable Websocket listener")
|
||||
wsPort := flag.String("ws_port", lookupEnvOrString("WS_PORT", ":80"), "port for Websocket listener")
|
||||
|
|
|
|||
8
backend/services/mtp/stomp-adapter/build/Dockerfile
Normal file
8
backend/services/mtp/stomp-adapter/build/Dockerfile
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
FROM golang:1.22@sha256:82e07063a1ac3ee59e6f38b1222e32ce88469e4431ff6496cc40fb9a0fc18229 as builder
|
||||
WORKDIR /app
|
||||
COPY ../ .
|
||||
RUN CGO_ENABLED=0 GOOS=linux go build -o stomp-adapter cmd/stomp-adapter/main.go
|
||||
|
||||
FROM alpine:3.14@sha256:0f2d5c38dd7a4f4f733e688e3a6733cb5ab1ac6e3cb4603a5dd564e5bfb80eed
|
||||
COPY --from=builder /app/stomp-adapter /
|
||||
ENTRYPOINT ["/stomp-adapter"]
|
||||
61
backend/services/mtp/stomp-adapter/build/Makefile
Normal file
61
backend/services/mtp/stomp-adapter/build/Makefile
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
.PHONY: help build push start stop release remove delete run logs bash
|
||||
|
||||
DOCKER_USER ?= oktopusp
|
||||
DOCKER_APP ?= stomp-adapter
|
||||
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
|
||||
8
backend/services/mtp/stomp/build/Dockerfile
Normal file
8
backend/services/mtp/stomp/build/Dockerfile
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
FROM golang:1.22@sha256:82e07063a1ac3ee59e6f38b1222e32ce88469e4431ff6496cc40fb9a0fc18229 as builder
|
||||
WORKDIR /app
|
||||
COPY ../ .
|
||||
RUN CGO_ENABLED=0 GOOS=linux go build -o stomp cmd/stomp/main.go
|
||||
|
||||
FROM alpine:3.14@sha256:0f2d5c38dd7a4f4f733e688e3a6733cb5ab1ac6e3cb4603a5dd564e5bfb80eed
|
||||
COPY --from=builder /app/stomp /
|
||||
ENTRYPOINT ["/stomp"]
|
||||
61
backend/services/mtp/stomp/build/Makefile
Normal file
61
backend/services/mtp/stomp/build/Makefile
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
.PHONY: help build push start stop release remove delete run logs bash
|
||||
|
||||
DOCKER_USER ?= oktopusp
|
||||
DOCKER_APP ?= stomp
|
||||
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} -p 61613:61613 ${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
|
||||
8
backend/services/mtp/ws-adapter/build/Dockerfile
Normal file
8
backend/services/mtp/ws-adapter/build/Dockerfile
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
FROM golang:1.22@sha256:82e07063a1ac3ee59e6f38b1222e32ce88469e4431ff6496cc40fb9a0fc18229 as builder
|
||||
WORKDIR /app
|
||||
COPY ../ .
|
||||
RUN CGO_ENABLED=0 GOOS=linux go build -o ws-adapter cmd/ws-adapter/main.go
|
||||
|
||||
FROM alpine:3.14@sha256:0f2d5c38dd7a4f4f733e688e3a6733cb5ab1ac6e3cb4603a5dd564e5bfb80eed
|
||||
COPY --from=builder /app/ws-adapter /
|
||||
ENTRYPOINT ["/ws-adapter"]
|
||||
61
backend/services/mtp/ws-adapter/build/Makefile
Normal file
61
backend/services/mtp/ws-adapter/build/Makefile
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
.PHONY: help build push start stop release remove delete run logs bash
|
||||
|
||||
DOCKER_USER ?= oktopusp
|
||||
DOCKER_APP ?= ws-adapter
|
||||
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
|
||||
8
backend/services/mtp/ws/build/Dockerfile
Normal file
8
backend/services/mtp/ws/build/Dockerfile
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
FROM golang:1.22@sha256:82e07063a1ac3ee59e6f38b1222e32ce88469e4431ff6496cc40fb9a0fc18229 as builder
|
||||
WORKDIR /app
|
||||
COPY ../ .
|
||||
RUN CGO_ENABLED=0 GOOS=linux go build -o ws cmd/ws/main.go
|
||||
|
||||
FROM alpine:3.14@sha256:0f2d5c38dd7a4f4f733e688e3a6733cb5ab1ac6e3cb4603a5dd564e5bfb80eed
|
||||
COPY --from=builder /app/ws /
|
||||
ENTRYPOINT ["/ws"]
|
||||
61
backend/services/mtp/ws/build/Makefile
Normal file
61
backend/services/mtp/ws/build/Makefile
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
.PHONY: help build push start stop release remove delete run logs bash
|
||||
|
||||
DOCKER_USER ?= oktopusp
|
||||
DOCKER_APP ?= ws
|
||||
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} -p 8080:8080 ${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
|
||||
11
backend/services/utils/socketio/build/Dockerfile
Normal file
11
backend/services/utils/socketio/build/Dockerfile
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
FROM node:16.20.2-alpine
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY ../package*.json ./
|
||||
|
||||
RUN npm install
|
||||
|
||||
COPY ../ .
|
||||
|
||||
CMD ["node", "server.js"]
|
||||
61
backend/services/utils/socketio/build/Makefile
Normal file
61
backend/services/utils/socketio/build/Makefile
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
.PHONY: help build push start stop release remove delete run logs bash
|
||||
|
||||
DOCKER_USER ?= oktopusp
|
||||
DOCKER_APP ?= socketio
|
||||
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} -p 5000:5000${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
|
||||
1
deploy/compose/.env
Normal file
1
deploy/compose/.env
Normal file
|
|
@ -0,0 +1 @@
|
|||
|
||||
|
|
@ -1,23 +1,6 @@
|
|||
services:
|
||||
|
||||
controller:
|
||||
image: 'golang:1.21.4'
|
||||
container_name: controlller
|
||||
tty: true
|
||||
stdin_open: true
|
||||
volumes:
|
||||
- ../:/app/oktopus
|
||||
command: bash -c "cd /app/oktopus/backend/services/controller && go run cmd/oktopus/main.go -mongo mongodb://172.16.235.2:27017 -a 172.16.235.4 -p 1883 -ws_addr 172.16.235.8"
|
||||
ports:
|
||||
- 8000:8000
|
||||
depends_on:
|
||||
- mongodb
|
||||
- mqtt
|
||||
- websockets
|
||||
networks:
|
||||
usp_network:
|
||||
ipv4_address: 172.16.235.7
|
||||
|
||||
#/* ----------------------------- Message Broker ----------------------------- */
|
||||
nats:
|
||||
image: 'nats:latest'
|
||||
container_name: nats
|
||||
|
|
@ -25,68 +8,138 @@ services:
|
|||
- 4222:4222
|
||||
- 8222:8222
|
||||
command: -n oktopus -m 8222 -js
|
||||
networks:
|
||||
usp_network:
|
||||
ipv4_address: 172.16.235.9
|
||||
|
||||
mongodb:
|
||||
image: mongo
|
||||
container_name: mongodb_usp
|
||||
networks:
|
||||
usp_network:
|
||||
ipv4_address: 172.16.235.2
|
||||
profiles: [nats]
|
||||
#/* -------------------------------------------------------------------------- */
|
||||
|
||||
redis:
|
||||
image: redis
|
||||
container_name: redis_usp
|
||||
#/* ------------------------ API REST / USP Controller ----------------------- */
|
||||
controller:
|
||||
image: 'oktopusp/controller'
|
||||
container_name: controlller
|
||||
ports:
|
||||
- 8000:8000
|
||||
depends_on:
|
||||
- mongo_usp
|
||||
networks:
|
||||
usp_network:
|
||||
ipv4_address: 172.16.235.3
|
||||
profiles: [controller]
|
||||
#/* -------------------------------------------------------------------------- */
|
||||
|
||||
mqtt:
|
||||
image: 'golang:1.21.4'
|
||||
container_name: mqtt
|
||||
tty: true
|
||||
stdin_open: true
|
||||
volumes:
|
||||
- ../:/app/oktopus
|
||||
command: bash -c "cd /app/oktopus/backend/services/mqtt/cmd/ && go run main.go -redis 'redis:6379' -info :8081"
|
||||
#/* ---------------------------- Databases / Cache --------------------------- */
|
||||
mongo_usp:
|
||||
image: mongo
|
||||
container_name: mongo_usp
|
||||
ports:
|
||||
- 1883:1883
|
||||
depends_on:
|
||||
- redis
|
||||
- 27017:27017
|
||||
networks:
|
||||
usp_network:
|
||||
ipv4_address: 172.16.235.4
|
||||
|
||||
websockets:
|
||||
image: 'golang:1.21.6'
|
||||
redis:
|
||||
image: redis
|
||||
container_name: redis_usp
|
||||
ports:
|
||||
- 6379:6379
|
||||
networks:
|
||||
usp_network:
|
||||
ipv4_address: 172.16.235.5
|
||||
profiles: [mqtt]
|
||||
#/* -------------------------------------------------------------------------- */
|
||||
|
||||
#/* ----------------------- Message Transfer Protocols ----------------------- */
|
||||
mqtt:
|
||||
image: 'oktopusp/mqtt'
|
||||
container_name: mqtt
|
||||
ports:
|
||||
- 1883:1883
|
||||
- 8883:8883
|
||||
depends_on:
|
||||
- redis
|
||||
networks:
|
||||
usp_network:
|
||||
ipv4_address: 172.16.235.6
|
||||
profiles: [mqtt]
|
||||
|
||||
ws:
|
||||
image: 'oktopusp/ws'
|
||||
container_name: websockets
|
||||
tty: true
|
||||
stdin_open: true
|
||||
volumes:
|
||||
- ../:/app/oktopus
|
||||
command: bash -c "cd /app/oktopus/backend/services/ws/ && go run cmd/main.go"
|
||||
ports:
|
||||
- 8080:8080
|
||||
networks:
|
||||
usp_network:
|
||||
ipv4_address: 172.16.235.8
|
||||
ipv4_address: 172.16.235.7
|
||||
profiles: [ws]
|
||||
|
||||
stomp:
|
||||
image: 'oktopusp/stomp'
|
||||
container_name: stomp
|
||||
ports:
|
||||
- 61613:61613
|
||||
networks:
|
||||
usp_network:
|
||||
ipv4_address: 172.16.235.8
|
||||
profiles: [stomp]
|
||||
#/* -------------------------------------------------------------------------- */
|
||||
|
||||
#/* --------------- Message transfer Protocols Adapters to NATS -------------- */
|
||||
mqtt-adapter:
|
||||
image: 'oktopusp/mqtt-adapter'
|
||||
container_name: mqtt-adapter
|
||||
depends_on:
|
||||
- mqtt
|
||||
networks:
|
||||
usp_network:
|
||||
ipv4_address: 172.16.235.9
|
||||
profiles: [mqtt]
|
||||
|
||||
|
||||
ws-adapter:
|
||||
image: 'oktopusp/ws-adapter'
|
||||
container_name: ws-adapter
|
||||
depends_on:
|
||||
- ws
|
||||
networks:
|
||||
usp_network:
|
||||
ipv4_address: 172.16.235.10
|
||||
profiles: [ws]
|
||||
|
||||
stomp-adapter:
|
||||
image: 'oktopusp/stomp-adapter'
|
||||
container_name: stomp-adapter
|
||||
depends_on:
|
||||
- stomp
|
||||
networks:
|
||||
usp_network:
|
||||
ipv4_address: 172.16.235.11
|
||||
profiles: [stomp]
|
||||
|
||||
adapter:
|
||||
image: 'oktopusp/adapter'
|
||||
container_name: adapter
|
||||
depends_on:
|
||||
- mongo_usp
|
||||
networks:
|
||||
usp_network:
|
||||
ipv4_address: 172.16.235.12
|
||||
profiles: [adapter]
|
||||
#/* -------------------------------------------------------------------------- */
|
||||
|
||||
#/* ------------- SocketIO Real Time Communication With Frontend ------------- */
|
||||
socketio:
|
||||
image: 'node:16.20.2'
|
||||
image: 'oktopusp/adapter'
|
||||
container_name: socketio
|
||||
tty: true
|
||||
stdin_open: true
|
||||
volumes:
|
||||
- ../:/app/oktopus
|
||||
command: bash -c "cd /app/oktopus/backend/services/socketio/ && npm i && node server.js"
|
||||
ports:
|
||||
- 5000:5000
|
||||
networks:
|
||||
usp_network:
|
||||
ipv4_address: 172.16.235.5
|
||||
ipv4_address: 172.16.235.12
|
||||
profiles: [frontend]
|
||||
#/* -------------------------------------------------------------------------- */
|
||||
|
||||
#/* -------------------------------- Frontend -------------------------------- */
|
||||
frontend:
|
||||
image: 'node:16.20.2'
|
||||
container_name: frontend
|
||||
|
|
@ -99,7 +152,21 @@ services:
|
|||
- 3000:3000
|
||||
networks:
|
||||
usp_network:
|
||||
ipv4_address: 172.16.235.6
|
||||
ipv4_address: 172.16.235.13
|
||||
profiles: [frontend]
|
||||
#/* -------------------------------------------------------------------------- */
|
||||
|
||||
portainer:
|
||||
image: portainer/portainer-ce:latest
|
||||
container_name: portainer
|
||||
ports:
|
||||
- 9443:9443
|
||||
networks:
|
||||
usp_network:
|
||||
ipv4_address: 172.16.235.14
|
||||
profiles: [portainer]
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
||||
networks:
|
||||
usp_network:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user