build: add docker build setup

This commit is contained in:
Alexander Navarro 2024-12-20 16:16:15 -03:00
parent b0506c3eab
commit 66b21dabcd
6 changed files with 84 additions and 20 deletions

21
.dockerignore Normal file
View 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

View 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 }}

View file

@ -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

View file

@ -1,2 +1,5 @@
run: run:
go run main.go run linkding --archive-starred go run main.go run linkding --archive-starred
docker-build:
docker build . --tag miniflux-archiver:latest

26
Dockerfile Normal file
View 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
View file

@ -0,0 +1,5 @@
#!/usr/bin/env sh
echo "$MFA_CRON /usr/bin/miniflux-archiver $*" | crontab -
crond -f -d 8