diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c7b30c4..adf10c2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,6 +7,7 @@ on: permissions: contents: write + packages: write jobs: goreleaser: @@ -20,6 +21,12 @@ jobs: uses: actions/setup-go@v5 with: go-version: 1.21.6 + - name: Docker Login + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Run GoReleaser uses: goreleaser/goreleaser-action@v5 with: diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 344af04..ba69d8d 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -31,5 +31,20 @@ brews: name: pikami email: git@pikami.org +dockers: + - image_templates: ["ghcr.io/pikami/{{ .ProjectName }}:{{ .Version }}-amd64"] + dockerfile: Dockerfile + use: docker + build_flag_templates: + - "--platform=linux/amd64" + - "--pull" + - "--label=org.opencontainers.image.title={{.ProjectName}}" + - "--label=org.opencontainers.image.description=Lightweight Cosmos DB emulator" + - "--label=org.opencontainers.image.url=https://github.com/pikami/cosmium" + - "--label=org.opencontainers.image.source=https://github.com/pikami/cosmium" + - "--label=org.opencontainers.image.created={{.Date}}" + - "--label=org.opencontainers.image.revision={{.FullCommit}}" + - "--label=org.opencontainers.image.version={{.Version}}" + checksum: name_template: 'checksums.txt' diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0e459ce --- /dev/null +++ b/Dockerfile @@ -0,0 +1,6 @@ +FROM scratch + +WORKDIR /app +COPY cosmium /app/cosmium + +ENTRYPOINT ["/app/cosmium"] diff --git a/README.md b/README.md index 14d0ae4..a886852 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,17 @@ If you want to run Cosmos DB Explorer alongside Cosmium, you'll need to build it Once running, the explorer can be reached by navigating following URL: `https://127.0.0.1:8081/_explorer/` (might be different depending on your configuration). +### Running with docker (optional) + +If you wan to run the application using docker, configure it using environment variables see example: +```sh +docker run --rm \ + -e Persist=/save.json \ + -v ./save.json:/save.json \ + -p 8081:8081 \ + ghcr.io/pikami/cosmium +``` + ### SSL Certificate By default, Cosmium uses a pre-generated SSL certificate. You can provide your own certificates by specifying paths to the SSL certificate and key (PEM format) using the `-Cert` and `-CertKey` arguments, respectively.