From 4d68e40cbd66a8cf6c6309fcb3245d7301c1548f Mon Sep 17 00:00:00 2001 From: Unic-X Date: Fri, 15 Nov 2024 12:37:55 +0530 Subject: [PATCH] Adding containers to simulate multiple clients --- Dockerfile | 23 +++++++++++++++++++++++ Makefile | 3 +++ docker-compose.yml | 22 ++++++++++++++++++++++ go.mod | 1 + go.sum | 2 ++ 5 files changed, 51 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..93a7073 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +FROM golang:1.23-alpine AS builder + +WORKDIR /app + +COPY go.mod go.sum ./ +RUN go mod download + +COPY . . + +RUN go build -o /goback main.go + +FROM alpine:latest + +RUN apk add openssh + +RUN mkdir -p /app/private /app/data + +RUN ssh-keygen -t rsa -b 4096 -f /app/private/id_rsa + +COPY --from=builder /goback /usr/local/bin/goback + +CMD ["goback"] + diff --git a/Makefile b/Makefile index 4ad56cd..f4c659f 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,9 @@ BINARY=goback all: build +poner: #install but in spanish + go install + tidy: go mod tidy diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..b417f4b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,22 @@ +services: + server: + build: . + command: ["goback", "server"] + ports: + - "8080:8080" # Replace with your server's port + volumes: + - ./data:/app/data + - ./private/id_rsa:/app/private/id_rsa + client: + tty: true + stdin_open: true + build: . + command: ["goback", "client"] + depends_on: + - server + environment: + - TERM=xterm-256color # Add any environment variables needed for the client + volumes: + - ./data:/app/data + deploy: + replicas: 1 # Specifies the number of client replicas diff --git a/go.mod b/go.mod index bc0b4bf..706103e 100644 --- a/go.mod +++ b/go.mod @@ -6,6 +6,7 @@ require ( github.com/aclements/go-rabin v0.0.0-20170911142644-d0b643ea1a4c github.com/charmbracelet/huh v0.6.0 github.com/charmbracelet/log v0.4.0 + github.com/fsnotify/fsnotify v1.8.0 github.com/ncruces/go-sqlite3 v0.20.0 github.com/pkg/sftp v1.13.6 github.com/spf13/cobra v1.8.1 diff --git a/go.sum b/go.sum index 89bcef7..8b50d2b 100644 --- a/go.sum +++ b/go.sum @@ -32,6 +32,8 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4= github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=