From 322886cdfebbb1e4d1f4c3fcf3aca320f4692ee4 Mon Sep 17 00:00:00 2001 From: Piotr Rogowski Date: Wed, 9 Nov 2022 21:14:38 +0100 Subject: [PATCH] Enable CGO, build and publish Dockerfile --- .dockerignore | 32 +++++++++++++++++++ .goreleaser.yaml | 2 +- Dockerfile | 15 +++++++++ README.md | 20 ++++++++---- .../docker-compose.yml => docker-compose.yml | 6 ++-- docker/.dockerignore | 1 - docker/Dockerfile | 7 ---- 7 files changed, 64 insertions(+), 19 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile rename docker/docker-compose.yml => docker-compose.yml (50%) delete mode 100644 docker/.dockerignore delete mode 100644 docker/Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..946a125 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,32 @@ +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib + +# Test binary, built with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Dependency directories (remove the comment below to include it) +# vendor/ + +# Go workspace file +go.work + +# mac +.DS_Store + +# pb_data and backups +/backup +/pb_data +/pb_data.zip +/pb_data.tar.gz + +# build +cloud-backend +cloud-backend.exe +main diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 24a75b7..c6541f2 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -10,7 +10,7 @@ builds: ldflags: - -s -w -X github.com/hyper-tuner/cloud-backend.Version={{ .Version }} env: - - CGO_ENABLED=0 + - CGO_ENABLED=1 goos: - linux - windows diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7c32126 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM golang:1.19 AS builder + +RUN mkdir /app +COPY . /app +WORKDIR /app + +RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o cloud-backend + +FROM alpine:latest AS production + +COPY --from=builder /app . + +EXPOSE 8090 + +CMD ["./cloud-backend", "serve", "--http=0.0.0.0:8090"] diff --git a/README.md b/README.md index 820e999..fd2b094 100644 --- a/README.md +++ b/README.md @@ -21,12 +21,6 @@ This is the backend for the [HyperTuner Cloud](https://github.com/hyper-tuner/hy - deployment scripts / **Docker** and docker compose files - migration scripts and guides -## Upgrading - -Some versions will contain breaking changes. - -If you are upgrading from a previous version, please read the [UPGRADE.md](UPGRADE.md) file. - ## Setting up your instance Use provider Docker files from the `/docker` directory or just grab the binary from the [Releases](https://github.com/hyper-tuner/cloud-backend/releases) page. @@ -39,6 +33,20 @@ This will create `pb_data` directory where all the data will be stored (SQLite, Now you can access the admin UI at: [https://your-instance.com/_/](https://your-instance.com/_/). +### Docker + +https://hub.docker.com/r/karniv001/hyper-tuner-cloud-backend + +```bash +docker pull karniv001/hyper-tuner-cloud-backend +``` + +## Upgrading + +Some versions will contain breaking changes. + +If you are upgrading from a previous version, please read the [UPGRADE.md](UPGRADE.md) file. + ### Application name and URL Located in admin UI: `Settings -> Application`. diff --git a/docker/docker-compose.yml b/docker-compose.yml similarity index 50% rename from docker/docker-compose.yml rename to docker-compose.yml index 84aec87..8405867 100644 --- a/docker/docker-compose.yml +++ b/docker-compose.yml @@ -2,11 +2,9 @@ version: '3.1' services: cloud-backend: - platform: linux/x86_64 - build: . + image: karniv001/hyper-tuner-cloud-backend:latest restart: unless-stopped - command: ["/cloud-backend", "serve", "--http=0.0.0.0:8080"] volumes: - ./pb_data:/pb_data ports: - - 80:8080 + - 80:8090 diff --git a/docker/.dockerignore b/docker/.dockerignore deleted file mode 100644 index b579b04..0000000 --- a/docker/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -pb_data diff --git a/docker/Dockerfile b/docker/Dockerfile deleted file mode 100644 index e39d79e..0000000 --- a/docker/Dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -FROM alpine:latest - -ARG VERSION=1.1.1 - -ADD https://github.com/hyper-tuner/cloud-backend/releases/download/v${VERSION}/cloud-backend_${VERSION}_linux_amd64.tar.gz /tmp/cloud-backend - -RUN tar -zxf /tmp/cloud-backend