generated from alecodes/base-template
build: add docker build setup
This commit is contained in:
parent
b0506c3eab
commit
66b21dabcd
6 changed files with 84 additions and 20 deletions
21
.dockerignore
Normal file
21
.dockerignore
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
# ---> VirtualEnv
|
||||
# Virtualenv
|
||||
# http://iamzed.com/2009/05/07/a-primer-on-virtualenv/
|
||||
.Python
|
||||
[Bb]in
|
||||
[Ii]nclude
|
||||
[Ll]ib
|
||||
[Ll]ib64
|
||||
[Ll]ocal
|
||||
[Ss]cripts
|
||||
pyvenv.cfg
|
||||
.venv
|
||||
pip-selfcheck.json
|
||||
|
||||
# ---> GPG
|
||||
secring.*
|
||||
|
||||
.env
|
||||
Dockerfile
|
||||
.forgejo
|
||||
.git
|
||||
29
.forgejo/workflows/build-docker-image.yaml
Normal file
29
.forgejo/workflows/build-docker-image.yaml
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
name: Publish image
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
create-docker-images:
|
||||
runs-on: host
|
||||
steps:
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: git.alecodes.page
|
||||
username: ${{ vars.CONTAINER_REGISTRY_USER }}
|
||||
password: ${{ secrets.CONTAINER_REGISTRY_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
||||
push: true
|
||||
tags: |
|
||||
git.alecodes.page/alecodes/miniflux-archive:latest
|
||||
git.alecodes.page/alecodes/miniflux-archive:${{ github.sha }}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
name: Template migration
|
||||
|
||||
# The workflow will run only when `use this template` is used
|
||||
on: create
|
||||
|
||||
jobs:
|
||||
create:
|
||||
runs-on: docker
|
||||
|
||||
steps:
|
||||
- name: "Check out the repo"
|
||||
uses: "actions/checkout@v4"
|
||||
|
||||
- name: "Update commit"
|
||||
uses: stefanzweifel/git-auto-commit-action@v4
|
||||
with:
|
||||
commit_message: "chore: initial commit"
|
||||
commit_options: "--amend"
|
||||
push_options: "--force"
|
||||
skip_fetch: true
|
||||
|
|
@ -1,2 +1,5 @@
|
|||
run:
|
||||
go run main.go run linkding --archive-starred
|
||||
|
||||
docker-build:
|
||||
docker build . --tag miniflux-archiver:latest
|
||||
|
|
|
|||
26
Dockerfile
Normal file
26
Dockerfile
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
FROM golang:1.23-alpine AS builder
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
# pre-copy/cache go.mod for pre-downloading dependencies and only redownloading them in subsequent builds if they change
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download && go mod verify
|
||||
|
||||
COPY . .
|
||||
RUN go build -v ./main.go
|
||||
|
||||
FROM alpine
|
||||
|
||||
COPY --from=builder /usr/src/app/main /usr/bin/miniflux-archiver
|
||||
|
||||
ENV MFA_CRON="* * * * *"
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY ./entrypoint.sh .
|
||||
|
||||
ENTRYPOINT ["./entrypoint.sh"]
|
||||
|
||||
RUN chmod +x entrypoint.sh /usr/bin/miniflux-archiver
|
||||
|
||||
CMD ["--help"]
|
||||
5
entrypoint.sh
Normal file
5
entrypoint.sh
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
echo "$MFA_CRON /usr/bin/miniflux-archiver $*" | crontab -
|
||||
|
||||
crond -f -d 8
|
||||
Loading…
Add table
Add a link
Reference in a new issue