From 6a736b40653d86ea22bc55c1e76946065880700f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Crnojevi=C4=87?= Date: Wed, 6 Mar 2024 18:51:00 +0100 Subject: [PATCH] Update --- .dockerignore | 13 ++++++++++ .gitignore | 2 ++ README.md | 26 ++++++++++++------- docker/client.Dockerfile => client.Dockerfile | 2 +- ...compose.yaml => client.docker-compose.yaml | 2 +- docker/server.Dockerfile | 17 ------------ go.mod | 4 +-- go.sum | 1 + ...mpose.yaml => rabbitmq.docker-compose.yaml | 0 server.Dockerfile | 11 ++++++++ ...compose.yaml => server.docker-compose.yaml | 4 +-- 11 files changed, 50 insertions(+), 32 deletions(-) create mode 100644 .dockerignore rename docker/client.Dockerfile => client.Dockerfile (94%) rename docker/client.docker-compose.yaml => client.docker-compose.yaml (94%) delete mode 100644 docker/server.Dockerfile rename docker/rabbitmq.docker-compose.yaml => rabbitmq.docker-compose.yaml (100%) create mode 100644 server.Dockerfile rename docker/server.docker-compose.yaml => server.docker-compose.yaml (91%) diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..86ae8e7 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,13 @@ +example.env +a +diagram.puml +img.png +LICENSE.md +README.md +.github +.idea +.gitignore +docker/ +server_exec +client_exec +*.yaml \ No newline at end of file diff --git a/.gitignore b/.gitignore index cc731ce..942f83f 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,5 @@ a *.json *.js node_modules/ +server_exec +client_exec \ No newline at end of file diff --git a/README.md b/README.md index 3298e68..fd44497 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ go run src/cmd/client/main.go Run the following command to start the Client in a scalable way with docker compose: ```shell -sudo docker-compose -f docker/client.docker-compose.yaml --scale client=2 --env-file .env up -d +docker-compose -f docker/client.docker-compose.yaml --scale client=2 --env-file .env up -d ``` Change the `--scale client=2` parameter to any number of clients you'd want to run in parallel. @@ -67,19 +67,28 @@ Change the `--scale client=2` parameter to any number of clients you'd want to r Run the following command to start the Server on your machine: +#### Without Docker + ```shell go run src/cmd/server/main.go ``` +#### With Docker + +```shell +docker build -t server -f server.Dockerfile . +docker run --network="host" --env-file .env server +``` + #### Scaling the Server Run the following command to start the Server in a scalable way with docker compose: ```shell -sudo docker-compose -f docker/consumerService.docker-compose.yaml --scale consumerService=2 --env-file .env up -d +docker-compose -f server.docker-compose.yaml --env-file .env up -d --scale server=3 ``` -Change the `--scale server=2` parameter to any number of clients you'd want to run in parallel. +Change the `--scale server=3` parameter to any number of clients you'd want to run in parallel. ## File structure @@ -89,12 +98,11 @@ Change the `--scale server=2` parameter to any number of clients you'd want to r ├── .env ├── go.mod ├── go.sum -├── docker -│   ├── client.Dockerfile -│   ├── client.docker-compose.yaml -│   ├── rabbitmq.docker-compose.yaml -│   ├── server.Dockerfile -│   └── server.docker-compose.yaml +├── client.Dockerfile +├── client.docker-compose.yaml +├── rabbitmq.docker-compose.yaml +├── server.Dockerfile +├── server.docker-compose.yaml ├── resources │   ├── commands100.csv │   ├── commands100k.csv diff --git a/docker/client.Dockerfile b/client.Dockerfile similarity index 94% rename from docker/client.Dockerfile rename to client.Dockerfile index d715a46..fad315d 100644 --- a/docker/client.Dockerfile +++ b/client.Dockerfile @@ -2,7 +2,7 @@ FROM --platform=linux/amd64 golang:1.22 as builder WORKDIR /app -ADD . /app +ADD docker /app RUN go mod tidy && go build -o client_exec ./src/cmd/client/ diff --git a/docker/client.docker-compose.yaml b/client.docker-compose.yaml similarity index 94% rename from docker/client.docker-compose.yaml rename to client.docker-compose.yaml index 9b0a30a..9962b99 100644 --- a/docker/client.docker-compose.yaml +++ b/client.docker-compose.yaml @@ -3,7 +3,7 @@ version: '3.8' services: client: build: - context: . + context: docker dockerfile: client.Dockerfile environment: RABBITMQ_USER: ${RABBITMQ_USER} diff --git a/docker/server.Dockerfile b/docker/server.Dockerfile deleted file mode 100644 index be4a249..0000000 --- a/docker/server.Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -FROM --platform=linux/amd64 golang:1.22 as builder - -WORKDIR /app - -ADD . /app - -RUN go mod tidy && go build -o server_exec ./src/cmd/server/ - -FROM --platform=linux/amd64 alpine:latest - -RUN apk --no-cache add ca-certificates - -WORKDIR /root/ - -COPY --from=builder /app/server_exec . - -CMD ["./client_exec"] diff --git a/go.mod b/go.mod index 0618afc..f8c07d4 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,6 @@ module github.com/zarnoevic/go-rabbitmq go 1.22.0 require ( - github.com/joho/godotenv v1.5.1 // indirect - github.com/rabbitmq/amqp091-go v1.9.0 // indirect + github.com/joho/godotenv v1.5.1 + github.com/rabbitmq/amqp091-go v1.9.0 ) diff --git a/go.sum b/go.sum index 3e3f640..a775d82 100644 --- a/go.sum +++ b/go.sum @@ -12,6 +12,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/docker/rabbitmq.docker-compose.yaml b/rabbitmq.docker-compose.yaml similarity index 100% rename from docker/rabbitmq.docker-compose.yaml rename to rabbitmq.docker-compose.yaml diff --git a/server.Dockerfile b/server.Dockerfile new file mode 100644 index 0000000..6b2c6dc --- /dev/null +++ b/server.Dockerfile @@ -0,0 +1,11 @@ +FROM --platform=linux/amd64 golang:1.22 as builder + +WORKDIR /app + +COPY . . + +RUN go mod download +RUN go mod tidy +RUN go build -o server_exec ./src/cmd/server/ + +CMD ["./server_exec"] diff --git a/docker/server.docker-compose.yaml b/server.docker-compose.yaml similarity index 91% rename from docker/server.docker-compose.yaml rename to server.docker-compose.yaml index 19d668f..dfa2226 100644 --- a/docker/server.docker-compose.yaml +++ b/server.docker-compose.yaml @@ -1,7 +1,7 @@ version: '3.8' services: - client: + server: build: context: . dockerfile: server.Dockerfile @@ -11,6 +11,6 @@ services: RABBITMQ_AMQP_PORT: ${RABBITMQ_AMQP_PORT} RABBITMQ_AMQP_HOST: ${RABBITMQ_AMQP_HOST} COMMANDS_PATH: ${COMMANDS_PATH} + network_mode: host volumes: - ./resources:/resources -