From 9b58fd248baa6ef31c450c6460107d83f98552cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20B=C3=B6hm?= Date: Mon, 20 Sep 2021 18:54:25 +0200 Subject: [PATCH] docker, drone ci --- .drone.yml | 19 +++++++++++++++++++ Dockerfile | 39 +++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 .drone.yml create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..5a34021 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,19 @@ +kind: pipeline +type: docker +name: default +steps: +- name: build + image: golang + volumes: + - name: deps + path: /go + commands: + - go build + +volumes: +- name: deps + temp: {} + +trigger: + branch: + - master diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..fc625a4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,39 @@ +# GO Repo base repo +FROM golang:alpine3.14 as builder + +RUN apk add git + +# Add Maintainer Info +LABEL maintainer="" + +RUN mkdir /app +ADD . /app +WORKDIR /app + +COPY go.mod go.sum ./ + +# Download all the dependencies +RUN go mod download + +COPY . . + +# Build the Go app +RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main . + +# GO Repo base repo +FROM alpine:latest + +RUN apk --no-cache add ca-certificates curl + +RUN mkdir /app + +WORKDIR /app/ + +# Copy the Pre-built binary file from the previous stage +COPY --from=builder /app/main . + +# Expose port 8080 +EXPOSE 8080 + +# Run Executable +CMD ["./main"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..44d8097 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,37 @@ +--- +services: + steamServer: + image: registry.boehm.sh/philipp/steamServer + container_name: steam-server-api + networks: + steamserver_network: + ipv4_address: 172.20.0.2 + depends_on: + - postgres + ports: + - 127.0.0.1:8080:8080 + - ::1:8080:8080 + restart: unless-stopped + + postgres: + image: postgres + networks: + steamserver_network: + ipv4_address: 172.20.0.2 + environment: + - POSTGRES_PASSWORD=t0t4lp4sss3cr3t + - PGDATA=/var/lib/postgresql/data/pgdata + volumes: + - ./data:/var/lib/postgresql/data + + networks: + steamserver_network: + name: "serverbrowser" + driver: bridge + enable_ipv6: false + ipam: + config: + - subnet: 172.20.0.0/29 + gateway: 172.20.0.1 + driver_opts: + com.docker.network.bridge.name: steamserver