23793141d1898188728c2e00f6ea0c0e3f0e98ea

Author
Ayman Bagabas <ayman.bagabas@gmail.com>
Committer
Ayman Bagabas <ayman.bagabas@gmail.com>
Date

Message

Use goreleaser to build docker images

Diff

This diff is truncated to protect this page.

  1diff --git a/.goreleaser.yml b/.goreleaser.yml
  2index 005e159ce09fd7f59d455bb4b9099d4753eb96cc..64840b0067b07d9f86dd11230833a4b9d79e7d44 100644
  3--- a/.goreleaser.yml
  4+++ b/.goreleaser.yml
  5@@ -11,27 +11,169 @@ before:
  6 builds:
  7   - id: "soft-serve"
  8     binary: "soft-serve"
  9-    ldflags: -s -w -X main.Version={{ .Commit }}-snapshot -X main.CommitSHA={{ .Commit }}
 10+    ldflags: -s -w -X main.Version=v{{ .Version }} -X main.CommitSHA={{ .Commit }}
 11     goos:
 12       - linux
 13+      # - darwin
 14+      # - windows
 15     goarch:
 16       - amd64
 17+      - arm64
 18+      - "386"
 19+      - arm
 20+    goarm:
 21+      - "6"
 22+      - "7"
 23 
 24 dockers:
 25   - image_templates:
 26-      - "ghcr.io/charmbracelet/soft-serve-internal:snapshot"
 27-      - "ghcr.io/charmbracelet/soft-serve-internal:{{ .Commit }}-snapshot"
 28+      - "charmcli/soft-serve:latest-amd64"
 29+      - "charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-amd64"
 30+      - "charmcli/soft-serve:v{{ .Version }}-amd64"
 31+      - "ghcr.io/charmbracelet/soft-serve:latest-amd64"
 32+      - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-amd64"
 33+      - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-amd64"
 34     ids: [soft-serve]
 35     goarch: amd64
 36     build_flag_templates:
 37       - --platform=linux/amd64
 38       - --label=org.opencontainers.image.title={{ .ProjectName }}
 39       - --label=org.opencontainers.image.description={{ .ProjectName }}
 40-      - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve-internal
 41-      - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve-internal
 42-      - --label=org.opencontainers.image.version={{ .Commit }}-snapshot
 43+      - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve
 44+      - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve
 45+      - --label=org.opencontainers.image.version=v{{ .Version }}
 46       - --label=org.opencontainers.image.created={{ .Date }}
 47       - --label=org.opencontainers.image.revision={{ .FullCommit }}
 48       - --label=org.opencontainers.image.licenses=MIT
 49     dockerfile: Dockerfile
 50     use: buildx
 51+  - image_templates:
 52+      - "charmcli/soft-serve:latest-i386"
 53+      - "charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-i386"
 54+      - "charmcli/soft-serve:v{{ .Version }}-i386"
 55+      - "ghcr.io/charmbracelet/soft-serve:latest-i386"
 56+      - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-i386"
 57+      - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-i386"
 58+    ids: [soft-serve]
 59+    goarch: "386"
 60+    build_flag_templates:
 61+      - --platform=linux/i386
 62+      - --label=org.opencontainers.image.title={{ .ProjectName }}
 63+      - --label=org.opencontainers.image.description={{ .ProjectName }}
 64+      - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve
 65+      - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve
 66+      - --label=org.opencontainers.image.version=v{{ .Version }}
 67+      - --label=org.opencontainers.image.created={{ .Date }}
 68+      - --label=org.opencontainers.image.revision={{ .FullCommit }}
 69+      - --label=org.opencontainers.image.licenses=MIT
 70+    dockerfile: Dockerfile
 71+    use: buildx
 72+  - image_templates:
 73+      - "charmcli/soft-serve:latest-arm64"
 74+      - "charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-arm64"
 75+      - "charmcli/soft-serve:v{{ .Version }}-arm64"
 76+      - "ghcr.io/charmbracelet/soft-serve:latest-arm64"
 77+      - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-arm64"
 78+      - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-arm64"
 79+    ids: [soft-serve]
 80+    goarch: arm64
 81+    build_flag_templates:
 82+      - --platform=linux/arm64
 83+      - --label=org.opencontainers.image.title={{ .ProjectName }}
 84+      - --label=org.opencontainers.image.description={{ .ProjectName }}
 85+      - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve
 86+      - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve
 87+      - --label=org.opencontainers.image.version=v{{ .Version }}
 88+      - --label=org.opencontainers.image.created={{ .Date }}
 89+      - --label=org.opencontainers.image.revision={{ .FullCommit }}
 90+      - --label=org.opencontainers.image.licenses=MIT
 91+    dockerfile: Dockerfile
 92+    use: buildx
 93+  - image_templates:
 94+      - "charmcli/soft-serve:latest-armv6"
 95+      - "charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-armv6"
 96+      - "charmcli/soft-serve:v{{ .Version }}-armv6"
 97+      - "ghcr.io/charmbracelet/soft-serve:latest-armv6"
 98+      - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-armv6"
 99+      - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-armv6"
100+    ids: [soft-serve]
101+    goarch: arm
102+    goarm: "6"
103+    build_flag_templates:
104+      - --platform=linux/arm/v6
105diff --git a/Dockerfile b/Dockerfile
106new file mode 100644
107index 0000000000000000000000000000000000000000..c1925dcdd73d000a514273a693c803fbc999a310
108--- /dev/null
109+++ b/Dockerfile
110@@ -0,0 +1,22 @@
111+FROM alpine:latest
112+
113+RUN apk update && apk add --update git && rm -rf /var/cache/apk/*
114+
115+COPY soft-serve /usr/local/bin/soft-serve
116+
117+# Create directories
118+WORKDIR /soft-serve
119+# Expose data volume
120+VOLUME /soft-serve
121+
122+# Environment variables
123+ENV SOFT_SERVE_KEY_PATH "/soft-serve/ssh/soft_serve_server_ed25519"
124+ENV SOFT_SERVE_INITIAL_ADMIN_KEY ""
125+ENV SOFT_SERVE_REPO_PATH "/soft-serve/repos"
126+
127+# Expose ports
128+# SSH
129+EXPOSE 23231/tcp
130+
131+# Set the default command
132+ENTRYPOINT [ "/usr/local/bin/soft-serve" ]