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