Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
f78abcc
Rework on official Node image
STRML Dec 6, 2017
6ec4305
Update packages; Use multistage build
dersimn Jul 1, 2019
8330426
README
dersimn Jul 1, 2019
b8ae868
Update Docker Hub references to my repository
dersimn Jul 1, 2019
7d3e3be
add alpine version; update
dersimn Dec 4, 2024
430ac44
add GitHub workflow; change default flavor
dersimn Dec 4, 2024
9e7f8e4
set fixed parent images
dersimn Dec 4, 2024
c016daf
Bump node from 22.12.0-bookworm-slim to 23.9.0-bookworm-slim
dependabot[bot] Mar 10, 2025
3973c38
Merge pull request #1 from dersimn/dependabot/docker/node-23.9.0-book…
dersimn Mar 10, 2025
3b01916
Bump node from 23.9.0-bookworm-slim to 23.10.0-bookworm-slim
dependabot[bot] Mar 17, 2025
0d761e4
Merge pull request #2 from dersimn/dependabot/docker/node-23.10.0-boo…
dersimn Mar 17, 2025
d060a43
Bump node from `16185f3` to `16185f3`
dependabot[bot] Mar 18, 2025
868bf2b
Merge pull request #3 from dersimn/dependabot/docker/node-16185f3
dersimn Mar 18, 2025
00833e4
Bump node from `16185f3` to `16185f3`
dependabot[bot] Mar 19, 2025
0140e37
Merge pull request #4 from dersimn/dependabot/docker/node-16185f3
dersimn Mar 19, 2025
20e6ab9
Bump node from 23.10.0-bookworm-slim to 23.11.0-bookworm-slim
dependabot[bot] Apr 7, 2025
2a8acd1
Merge pull request #5 from dersimn/dependabot/docker/node-23.11.0-boo…
dersimn Apr 7, 2025
6b1fc9d
Bump node from `45b0799` to `45b0799`
dependabot[bot] Apr 8, 2025
9d9a2a2
Merge pull request #6 from dersimn/dependabot/docker/node-45b0799
dersimn Apr 8, 2025
a7d51a8
Bump node from `45b0799` to `45b0799`
dependabot[bot] Apr 9, 2025
4402b53
Merge pull request #7 from dersimn/dependabot/docker/node-45b0799
dersimn Apr 9, 2025
4250e47
Bump node from `45b0799` to `45b0799`
dependabot[bot] Apr 29, 2025
60bcb4f
Merge pull request #8 from dersimn/dependabot/docker/node-45b0799
dersimn Apr 29, 2025
a6d9b46
Bump node from `45b0799` to `45b0799`
dependabot[bot] Apr 30, 2025
5c18f23
Merge pull request #9 from dersimn/dependabot/docker/node-45b0799
dersimn Apr 30, 2025
590fd58
Bump node from 23.11.0-bookworm-slim to 24.0.0-bookworm-slim
dependabot[bot] May 7, 2025
db83216
Merge pull request #10 from dersimn/dependabot/docker/node-24.0.0-boo…
dersimn May 7, 2025
795f630
Bump node from 24.0.0-bookworm-slim to 24.0.1-bookworm-slim
dependabot[bot] May 9, 2025
05b1455
Merge pull request #11 from dersimn/dependabot/docker/node-24.0.1-boo…
dersimn May 9, 2025
1f93050
Bump node from 24.0.1-bookworm-slim to 24.0.2-bookworm-slim
dependabot[bot] May 16, 2025
5f5c544
Merge pull request #12 from dersimn/dependabot/docker/node-24.0.2-boo…
dersimn May 16, 2025
1477227
Bump node from `3ce0ee4` to `3ce0ee4`
dependabot[bot] May 22, 2025
8e47291
Merge pull request #13 from dersimn/dependabot/docker/node-3ce0ee4
dersimn May 22, 2025
ab4c32c
Bump node from `3ce0ee4` to `3ce0ee4`
dependabot[bot] May 23, 2025
73a1945
Merge pull request #14 from dersimn/dependabot/docker/node-3ce0ee4
dersimn May 23, 2025
7021476
Bump node from 24.0.2-bookworm-slim to 24.1.0-bookworm-slim
dependabot[bot] May 27, 2025
2f62f89
Merge pull request #15 from dersimn/dependabot/docker/node-24.1.0-boo…
dersimn May 27, 2025
5c60f5c
Bump node from 24.1.0-bookworm-slim to 24.2.0-bookworm-slim
dependabot[bot] Jun 10, 2025
f41ceb6
Merge pull request #16 from dersimn/dependabot/docker/node-24.2.0-boo…
dersimn Jun 10, 2025
b732d44
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Jun 11, 2025
05da7f8
Merge pull request #17 from dersimn/dependabot/docker/node-8fe019e
dersimn Jun 11, 2025
0e9710f
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Jun 12, 2025
acdc587
Merge pull request #18 from dersimn/dependabot/docker/node-8fe019e
dersimn Jun 12, 2025
610b0a7
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Jun 26, 2025
f59e27c
Merge pull request #19 from dersimn/dependabot/docker/node-8fe019e
dersimn Jun 26, 2025
26bf032
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Jul 2, 2025
edc404f
Merge pull request #20 from dersimn/dependabot/docker/node-8fe019e
dersimn Jul 2, 2025
bb82116
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Jul 8, 2025
ec8d8de
Merge pull request #21 from dersimn/dependabot/docker/node-8fe019e
dersimn Jul 8, 2025
9c211e4
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Jul 10, 2025
e50668e
Merge pull request #22 from dersimn/dependabot/docker/node-8fe019e
dersimn Jul 10, 2025
ed7cc33
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Jul 17, 2025
b7e465c
Merge pull request #23 from dersimn/dependabot/docker/node-8fe019e
dersimn Jul 17, 2025
472edef
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Jul 22, 2025
3237739
Merge pull request #24 from dersimn/dependabot/docker/node-8fe019e
dersimn Jul 22, 2025
89e4676
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Jul 22, 2025
26b7d56
Merge pull request #25 from dersimn/dependabot/docker/node-8fe019e
dersimn Jul 22, 2025
eece3c6
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Jul 23, 2025
6f40e4f
Merge pull request #26 from dersimn/dependabot/docker/node-8fe019e
dersimn Jul 23, 2025
7839a05
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Aug 5, 2025
0f028a8
Merge pull request #27 from dersimn/dependabot/docker/node-8fe019e
dersimn Aug 5, 2025
1ca6a0a
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Aug 13, 2025
e60f770
Merge pull request #28 from dersimn/dependabot/docker/node-8fe019e
dersimn Aug 13, 2025
fc15374
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Aug 14, 2025
dd3e2b0
Merge pull request #29 from dersimn/dependabot/docker/node-8fe019e
dersimn Aug 14, 2025
94fb8ca
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Aug 18, 2025
49b778b
Merge pull request #30 from dersimn/dependabot/docker/node-8fe019e
dersimn Aug 18, 2025
62dfcaa
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Aug 29, 2025
6b11017
Merge pull request #31 from dersimn/dependabot/docker/node-8fe019e
dersimn Aug 29, 2025
2c8f46e
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Sep 9, 2025
f7318e5
Merge pull request #32 from dersimn/dependabot/docker/node-8fe019e
dersimn Sep 9, 2025
549faec
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Sep 11, 2025
b6ee825
Merge pull request #33 from dersimn/dependabot/docker/node-8fe019e
dersimn Sep 11, 2025
172aef4
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Sep 29, 2025
4ce6cf7
Merge pull request #34 from dersimn/dependabot/docker/node-8fe019e
dersimn Sep 29, 2025
03a5b61
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Oct 1, 2025
f80d118
Merge pull request #35 from dersimn/dependabot/docker/node-8fe019e
dersimn Oct 1, 2025
e7b3fb4
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Oct 2, 2025
dd56c78
Merge pull request #36 from dersimn/dependabot/docker/node-8fe019e
dersimn Oct 2, 2025
eef25bf
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Oct 10, 2025
2f3c4dc
Merge pull request #37 from dersimn/dependabot/docker/node-8fe019e
dersimn Oct 10, 2025
f162ca4
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Oct 17, 2025
8c49243
Merge pull request #38 from dersimn/dependabot/docker/node-8fe019e
dersimn Oct 17, 2025
99d5845
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Oct 22, 2025
4e7a910
Merge pull request #39 from dersimn/dependabot/docker/node-8fe019e
dersimn Oct 22, 2025
a08346e
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Oct 30, 2025
82e9a20
Merge pull request #40 from dersimn/dependabot/docker/node-8fe019e
dersimn Oct 30, 2025
1d4fcb6
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Nov 5, 2025
cd9c7fa
Merge pull request #41 from dersimn/dependabot/docker/node-8fe019e
dersimn Nov 5, 2025
dfe78bf
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Nov 13, 2025
2074e54
Merge pull request #42 from dersimn/dependabot/docker/node-8fe019e
dersimn Nov 13, 2025
d8e34ce
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Nov 18, 2025
0864ba4
Merge pull request #43 from dersimn/dependabot/docker/node-8fe019e
dersimn Nov 18, 2025
ccac2d2
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Nov 19, 2025
83c89c2
Merge pull request #44 from dersimn/dependabot/docker/node-8fe019e
dersimn Nov 19, 2025
774a7c2
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Dec 10, 2025
896690f
Merge pull request #45 from dersimn/dependabot/docker/node-8fe019e
dersimn Dec 10, 2025
e0d5bcc
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Dec 30, 2025
bbcd428
Merge pull request #46 from dersimn/dependabot/docker/node-8fe019e
dersimn Dec 30, 2025
ef88483
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Dec 31, 2025
e55e7d9
Merge pull request #47 from dersimn/dependabot/docker/node-8fe019e
dersimn Dec 31, 2025
e33211c
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Jan 13, 2026
5b0e498
Merge pull request #48 from dersimn/dependabot/docker/node-8fe019e
dersimn Jan 13, 2026
303548c
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Jan 14, 2026
0f94b03
Merge pull request #49 from dersimn/dependabot/docker/node-8fe019e
dersimn Jan 14, 2026
548ee36
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Jan 15, 2026
672d3be
Merge pull request #50 from dersimn/dependabot/docker/node-8fe019e
dersimn Jan 15, 2026
d64506f
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Jan 21, 2026
27a5e15
Merge pull request #51 from dersimn/dependabot/docker/node-8fe019e
dersimn Jan 21, 2026
5ecc293
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Jan 28, 2026
dd29f50
Merge pull request #52 from dersimn/dependabot/docker/node-8fe019e
dersimn Jan 28, 2026
24af861
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Feb 3, 2026
a155deb
Merge pull request #53 from dersimn/dependabot/docker/node-8fe019e
dersimn Feb 3, 2026
33bb5ea
Bump node from `8fe019e` to `8fe019e`
dependabot[bot] Feb 4, 2026
2623957
Merge pull request #54 from dersimn/dependabot/docker/node-8fe019e
dersimn Feb 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
version: 2

updates:
- package-ecosystem: docker
directory: /
schedule:
interval: daily
116 changes: 116 additions & 0 deletions .github/workflows/docker-build-push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
name: Docker build and publish
run-name: Run for ${{ github.ref_name }} (${{github.ref_type}}, triggered by ${{ github.event_name }})

on:
workflow_dispatch:
push:
branches:
# Run on every branch
- '**'
# Except branches beginning with:
- '!fail/**'
- '!dead-end/**'
- '!trash/**'
- '!dependabot/**' # avoid running Workflow twice, because Dependabot creates a branch ("push" event) and a pull request)
tags:
- '**'
pull_request:
types: [opened, synchronize, reopened]

env:
TARGET_IMAGE: dersimn/gifify

jobs:
build:
name: Build ${{ matrix.flavor }}
runs-on: ubuntu-latest
strategy:
matrix:
include:
# - flavor: alpine # Name e.g. some different base-image
# # The flavor with "default-flavor: true" additionally gets the suffix-less Docker tag, e.g. "mybranch-myflavor" and additionally only "mybranch" while all other flavors only have their usual "mybranch-myotherflavor".
# default-flavor: false
# dockerfile: ./Dockerfile-alpine # Dockerfile to use with this flavor
# build-platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x
- flavor: alpine
default-flavor: true
dockerfile: ./Dockerfile-alpine
build-platforms: linux/amd64,linux/arm64/v8
- flavor: debian
dockerfile: ./Dockerfile-debian
build-platforms: linux/amd64,linux/arm64/v8
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ env.TARGET_IMAGE }}
flavor: |
latest=false
tags: |
# Latest tag only for default flavor & default branch
type=raw,value=latest,enable=${{ format('refs/heads/{0}', github.event.repository.default_branch) == github.ref && matrix.default-flavor || 'false' }}
# plain flavor string on default branch
type=raw,value=${{ matrix.flavor }},enable={{is_default_branch}}
# Branch name WITHOUT suffix for default flavor
#type=ref,event=branch,enable=${{ matrix.default-flavor || 'false' }}
# Branch name WITH suffix for every branch & flavor
type=ref,event=branch,suffix=-${{ matrix.flavor }}
# Git Tag WITHOUT suffix for default flavor
#type=ref,event=tag,enable=${{ matrix.default-flavor || 'false' }}
# Git Tag WITH suffix for every tag & flavor
type=ref,event=tag,suffix=-${{ matrix.flavor }}
# Commit short SHA WITHOUT suffix for default flavor
#type=sha,enable=${{ matrix.default-flavor || 'false' }}
# Commit short SHA WITH suffix every flavor: sha-ad132f5-myflavor
#type=sha,suffix=-${{ matrix.flavor }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Login to Docker Hub
uses: docker/login-action@v2
if: github.event_name != 'pull_request'
with:
username: ${{ vars.DOCKERHUB_USERNAME || github.repository_owner }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v4
with:
push: ${{ github.event_name != 'pull_request' }}
context: .
file: ${{ matrix.dockerfile }}
platforms: ${{ matrix.build-platforms }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

- name: Summary
run: |
echo "Pushed Docker Tags:" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo '${{ steps.meta.outputs.tags }}' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY

dependabot-auto-merge:
needs: build
runs-on: ubuntu-latest
if: github.actor == 'dependabot[bot]'
permissions:
pull-requests: write
contents: write
steps:
- name: Enable auto-merge for Dependabot PRs
run: gh pr merge --auto --merge "$PR_URL"
env:
PR_URL: ${{ github.event.pull_request.html_url }}
GH_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
# Using GITHUB_TOKEN __won't__ trigger following Workflows
# see: https://github.com/orgs/community/discussions/55906
#GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
27 changes: 0 additions & 27 deletions Dockerfile

This file was deleted.

13 changes: 13 additions & 0 deletions Dockerfile-alpine
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM node:24.1.0-alpine3.20@sha256:8fe019e0d57dbdce5f5c27c0b63d2775cf34b00e3755a7dea969802d7e0c2b25

RUN apk add --no-cache \
gifsicle \
ffmpeg \
imagemagick

# install gifify
RUN npm i -g gifify

# run gifify in /data (requires user to mount their source folder in /data)
WORKDIR /data
ENTRYPOINT ["gifify"]
14 changes: 14 additions & 0 deletions Dockerfile-debian
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
FROM node:25.6.0-bookworm-slim@sha256:3746b7c78e343062cbad1a1a9f22e582e2aaeda5b183b7050b5831e22f988730

RUN apt-get update && \
apt-get install -y \
gifsicle \
ffmpeg \
imagemagick

# install gifify
RUN npm i -g gifify

# run gifify in /data (requires user to mount their source folder in /data)
WORKDIR /data
ENTRYPOINT ["gifify"]
63 changes: 58 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,65 @@
# gifify-docker

A docker container for [gifify](https://github.com/vvo/gifify)
A docker container for [gifify](https://github.com/vvo/gifify). Based on the work of [maxogden](https://github.com/maxogden/gifify-docker) and [STRML](https://github.com/STRML/gifify-docker).

![docker-badge](http://dockeri.co/image/maxogden/gifify)
![docker-badge](http://dockeri.co/image/dersimn/gifify)

## installation
# Installation

1. install docker
2. run `docker run -it --rm -v $(pwd):/data maxogden/gifify source.mov -o output.gif`
2. run `docker run -it --rm -v $(pwd):/data dersimn/gifify source.mov -o output.gif`

When you run `docker run maxogden/gifify` it executes the `gifify` command in `/data` inside the docker ubuntu VM, so in order for this to work you must mount your current working directory as `/data` in the volume. This is what `-v $(pwd):/data` does in the command above.
When you run `docker run dersimn/gifify` it executes the `gifify` command in `/data` inside the docker ubuntu VM, so in order for this to work you must mount your current working directory as `/data` in the volume. This is what `-v $(pwd):/data` does in the command above.
You could also specify this command as an alias in your `.bashrc` file, for e.g.:

alias gifify='docker run -it --rm -v $(pwd):/data dersimn/gifify'

and use it like

gifify source.mov -o output.gif


## Usage Examples

docker run -it --rm -v "$(pwd)":/data dersimn/gifify source.mov -o output.gif

Fit video in a 350x350 rectangle and don't scale up if it's smaller:

docker run -it --rm -v "$(pwd)":/data dersimn/gifify source.mov -o output.gif --resize w=350:h=350:force_original_aspect_ratio=decrease


# Build

## Docker build

docker build -f Dockerfile-debian -t dersimn/gifify .
docker build -f Dockerfile-alpine -t dersimn/gifify:alpine .

## buildx

## buildx

docker buildx create --name mybuilder
docker buildx use mybuilder

docker buildx build \
-f Dockerfile-debian \
--platform linux/amd64,linux/arm64/v8 \
-t dersimn/gifify:debian \
--push \
.

docker buildx build \
-f Dockerfile-alpine \
--platform linux/amd64,linux/arm64/v8 \
-t dersimn/gifify \
-t dersimn/gifify:alpine \
--push \
.

## GitHub Actions

Provide secrets:

gh secret set PERSONAL_ACCESS_TOKEN --body '<TOKEN>' --app dependabot
gh secret set DOCKERHUB_TOKEN --body '<TOKEN>'
3 changes: 0 additions & 3 deletions gasket.json

This file was deleted.