27 Commits

Author SHA1 Message Date
3e2c9bb75a Merge pull request 'chore(deps): update dependency docker.io/library/rockylinux to v9.2' (#8) from renovate/docker.io-library-rockylinux-9.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #8
2023-06-09 06:20:12 +00:00
74b8bc9d6d chore(deps): update dependency docker.io/library/rockylinux to v9.2
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-06-08 22:51:09 +02:00
cc827f1a03 chore(deps): update dependency docker.io/plugins/docker to v20.14.4
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-06-08 21:31:32 +02:00
9e0f029469 feat(ci): use git.cryptic.systems/volker.raschek/markdownlint v0.33.0
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-08 19:38:23 +02:00
ddf9db6200 feat(ci): use docker.io/plugins/drone v20.10.9
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-08 19:24:44 +02:00
8fcf8c8afd feat(ci): migrate to volker.raschek/git v1.2.1
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-08 18:22:02 +02:00
083f10c4f7 fix: replace curl with curl-minimal, add bash-completion
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-05 10:18:02 +01:00
366b8dc784 chore(deps): update dependency docker.io/library/rockylinux to v9.1
Some checks failed
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is failing
2023-01-07 21:41:16 +01:00
6c44e2fac3 chore(deps): update dependency docker.io/volkerraschek/markdownlint to v0.33.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-01-07 19:52:46 +01:00
6f21ddc0af fix(ci): typo
All checks were successful
continuous-integration/drone/push Build is passing
2022-08-21 18:35:29 +02:00
d042f6f942 chore(deps): update dependency docker.io/volkerraschek/markdownlint to v0.32.2
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2022-08-21 16:52:32 +02:00
465ed81044 fix(ci): use docker.io/volkerraschek/drone-email:0.1.0
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-26 16:40:41 +02:00
cd4e028655 chore(deps): update dependency docker.io/volkerraschek/markdownlint to v0.32.1
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2022-07-25 13:11:37 +02:00
d32561ade3 chore(deps): update dependency docker.io/volkerraschek/markdownlint to v0.32.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2022-07-18 11:11:49 +02:00
238231bb1f chore(deps): update dependency docker.io/library/rockylinux to v9
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2022-07-14 22:20:35 +02:00
540c1140db fix: bump to v0.17.7
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
2022-07-14 18:08:29 +02:00
b0abbc18f2 Merge pull request 'chore(deps): update dependency docker.io/library/rockylinux to v8.6' (#1) from renovate/docker.io-library-rockylinux-8.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #1
2022-07-14 15:55:41 +00:00
cf9af61d27 chore(deps): update dependency docker.io/library/rockylinux to v8.6
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2022-07-07 22:20:38 +02:00
31ca77ac27 fix(ci): resource limits
All checks were successful
continuous-integration/drone/push Build is passing
2022-05-22 13:08:30 +02:00
f76331e583 fix(ci): use fully qualified image name
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2022-05-22 13:00:41 +02:00
e1ebc19f00 fix: use podman instead of docker
All checks were successful
continuous-integration/drone/push Build is passing
2022-05-03 17:27:02 +02:00
fda97006ff fix(ci): renovate
All checks were successful
continuous-integration/drone/push Build is passing
2022-05-03 17:25:29 +02:00
ae994ebab2 test(renovate): automerge
All checks were successful
continuous-integration/drone/push Build is passing
2022-05-03 17:17:37 +02:00
0bb533f16e test(renovate): automerge
All checks were successful
continuous-integration/drone/push Build is passing
2022-05-03 16:02:08 +02:00
9e37f72c0a fix: extract repo dir
All checks were successful
continuous-integration/drone/push Build is passing
2022-05-03 15:56:04 +02:00
903be7c5ad fix: add createrepo.sh
All checks were successful
continuous-integration/drone/push Build is passing
2022-05-03 12:36:37 +02:00
c1d6c38223 fix(README): description
All checks were successful
continuous-integration/drone/push Build is passing
2022-05-03 12:06:34 +02:00
6 changed files with 212 additions and 104 deletions

View File

@ -3,34 +3,42 @@ kind: pipeline
type: kubernetes type: kubernetes
name: linter name: linter
clone:
disable: true
platform: platform:
os: linux os: linux
steps: steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.2.1
- name: markdown lint - name: markdown lint
commands: commands:
- markdownlint *.md - markdownlint *.md
image: docker.io/volkerraschek/markdownlint:0.31.1 image: git.cryptic.systems/volker.raschek/markdownlint:0.33.0
resources: resources:
limits: limits:
cpu: 50 cpu: 150
memory: 50M memory: 150M
- name: email-notification - name: email-notification
environment: environment:
PLUGIN_HOST: SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host from_secret: smtp_host
PLUGIN_USERNAME: SMTP_USERNAME:
from_secret: smtp_username from_secret: smtp_username
PLUGIN_PASSWORD: SMTP_PASSWORD:
from_secret: smtp_password from_secret: smtp_password
PLUGIN_FROM: image: docker.io/volkerraschek/drone-email:0.1.1
from_secret: smtp_mail_address
image: docker.io/drillster/drone-email:latest
resources: resources:
limits: limits:
cpu: 50 cpu: 150
memory: 25M memory: 150M
when: when:
status: status:
- changed - changed
@ -46,13 +54,19 @@ kind: pipeline
type: docker type: docker
name: dry-run-amd64 name: dry-run-amd64
clone:
disable: true
platform: platform:
os: linux os: linux
arch: amd64 arch: amd64
steps: steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.2.1
- name: build - name: build
image: plugins/docker image: docker.io/plugins/docker:20.14.4
settings: settings:
auto_tag: false auto_tag: false
dockerfile: Dockerfile dockerfile: Dockerfile
@ -70,17 +84,19 @@ steps:
- name: docker_socket - name: docker_socket
path: /var/run/docker.sock path: /var/run/docker.sock
- name: notify - name: email-notification
image: drillster/drone-email
environment: environment:
PLUGIN_HOST: SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host from_secret: smtp_host
PLUGIN_USERNAME: SMTP_USERNAME:
from_secret: smtp_username from_secret: smtp_username
PLUGIN_PASSWORD: SMTP_PASSWORD:
from_secret: smtp_password from_secret: smtp_password
PLUGIN_FROM: image: docker.io/volkerraschek/drone-email:0.1.1
from_secret: smtp_mail_address
when: when:
status: status:
- changed - changed
@ -109,13 +125,19 @@ kind: pipeline
type: docker type: docker
name: dry-run-arm64-v8 name: dry-run-arm64-v8
clone:
disable: true
platform: platform:
os: linux os: linux
arch: arm64 arch: arm64
steps: steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.2.1
- name: build - name: build
image: plugins/docker image: docker.io/plugins/docker:20.14.4
settings: settings:
auto_tag: false auto_tag: false
dockerfile: Dockerfile dockerfile: Dockerfile
@ -130,20 +152,19 @@ steps:
password: password:
from_secret: container_image_registry_password from_secret: container_image_registry_password
- name: notify - name: email-notification
image: drillster/drone-email
environment: environment:
PLUGIN_HOST: SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host from_secret: smtp_host
PLUGIN_USERNAME: SMTP_USERNAME:
from_secret: smtp_username from_secret: smtp_username
PLUGIN_PASSWORD: SMTP_PASSWORD:
from_secret: smtp_password from_secret: smtp_password
PLUGIN_FROM: image: docker.io/volkerraschek/drone-email:0.1.1
from_secret: smtp_mail_address
volumes:
- name: docker_socket
path: /var/run/docker.sock
when: when:
status: status:
- changed - changed
@ -172,13 +193,19 @@ kind: pipeline
type: docker type: docker
name: latest-amd64 name: latest-amd64
clone:
disable: true
platform: platform:
os: linux os: linux
arch: amd64 arch: amd64
steps: steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.2.1
- name: build - name: build
image: plugins/docker image: docker.io/plugins/docker:20.14.4
settings: settings:
auto_tag: false auto_tag: false
dockerfile: Dockerfile dockerfile: Dockerfile
@ -195,17 +222,19 @@ steps:
- name: docker_socket - name: docker_socket
path: /var/run/docker.sock path: /var/run/docker.sock
- name: notify - name: email-notification
image: drillster/drone-email
environment: environment:
PLUGIN_HOST: SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host from_secret: smtp_host
PLUGIN_USERNAME: SMTP_USERNAME:
from_secret: smtp_username from_secret: smtp_username
PLUGIN_PASSWORD: SMTP_PASSWORD:
from_secret: smtp_password from_secret: smtp_password
PLUGIN_FROM: image: docker.io/volkerraschek/drone-email:0.1.1
from_secret: smtp_mail_address
when: when:
status: status:
- changed - changed
@ -233,13 +262,19 @@ kind: pipeline
type: docker type: docker
name: latest-arm64-v8 name: latest-arm64-v8
clone:
disable: true
platform: platform:
os: linux os: linux
arch: arm64 arch: arm64
steps: steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.2.1
- name: build - name: build
image: plugins/docker image: docker.io/plugins/docker:20.14.4
settings: settings:
auto_tag: false auto_tag: false
dockerfile: Dockerfile dockerfile: Dockerfile
@ -253,20 +288,19 @@ steps:
password: password:
from_secret: container_image_registry_password from_secret: container_image_registry_password
- name: notify - name: email-notification
image: drillster/drone-email
environment: environment:
PLUGIN_HOST: SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host from_secret: smtp_host
PLUGIN_USERNAME: SMTP_USERNAME:
from_secret: smtp_username from_secret: smtp_username
PLUGIN_PASSWORD: SMTP_PASSWORD:
from_secret: smtp_password from_secret: smtp_password
PLUGIN_FROM: image: docker.io/volkerraschek/drone-email:0.1.1
from_secret: smtp_mail_address
volumes:
- name: docker_socket
path: /var/run/docker.sock
when: when:
status: status:
- changed - changed
@ -294,9 +328,15 @@ kind: pipeline
type: kubernetes type: kubernetes
name: latest-manifest name: latest-manifest
clone:
disable: true
steps: steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.2.1
- name: build-manifest - name: build-manifest
image: plugins/manifest image: docker.io/plugins/manifest:latest
settings: settings:
auto_tag: false auto_tag: false
ignore_missing: true ignore_missing: true
@ -306,21 +346,23 @@ steps:
password: password:
from_secret: container_image_registry_password from_secret: container_image_registry_password
- name: notify - name: email-notification
image: docker.io/drillster/drone-email:latest
environment: environment:
PLUGIN_HOST: SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host from_secret: smtp_host
PLUGIN_USERNAME: SMTP_USERNAME:
from_secret: smtp_username from_secret: smtp_username
PLUGIN_PASSWORD: SMTP_PASSWORD:
from_secret: smtp_password from_secret: smtp_password
PLUGIN_FROM: image: docker.io/volkerraschek/drone-email:0.1.1
from_secret: smtp_mail_address
resources: resources:
limits: limits:
cpu: 50 cpu: 150
memory: 25M memory: 150M
when: when:
status: status:
- changed - changed
@ -344,13 +386,19 @@ kind: pipeline
type: docker type: docker
name: tagged-amd64 name: tagged-amd64
clone:
disable: true
platform: platform:
os: linux os: linux
arch: amd64 arch: amd64
steps: steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.2.1
- name: build - name: build
image: plugins/docker image: docker.io/plugins/docker:20.14.4
settings: settings:
auto_tag_suffix: amd64 auto_tag_suffix: amd64
auto_tag: true auto_tag: true
@ -364,22 +412,24 @@ steps:
password: password:
from_secret: container_image_registry_password from_secret: container_image_registry_password
build_args: build_args:
- CEATEREPO_VERSION=${DRONE_TAG} - CREATEREPO_VERSION=${DRONE_TAG}
volumes: volumes:
- name: docker_socket - name: docker_socket
path: /var/run/docker.sock path: /var/run/docker.sock
- name: notify - name: email-notification
image: drillster/drone-email
environment: environment:
PLUGIN_HOST: SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host from_secret: smtp_host
PLUGIN_USERNAME: SMTP_USERNAME:
from_secret: smtp_username from_secret: smtp_username
PLUGIN_PASSWORD: SMTP_PASSWORD:
from_secret: smtp_password from_secret: smtp_password
PLUGIN_FROM: image: docker.io/volkerraschek/drone-email:0.1.1
from_secret: smtp_mail_address
when: when:
status: status:
- changed - changed
@ -401,13 +451,19 @@ kind: pipeline
type: docker type: docker
name: tagged-arm64-v8 name: tagged-arm64-v8
clone:
disable: true
platform: platform:
os: linux os: linux
arch: arm64 arch: arm64
steps: steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.2.1
- name: build - name: build
image: plugins/docker image: docker.io/plugins/docker:20.14.4
settings: settings:
auto_tag_suffix: arm64-v8 auto_tag_suffix: arm64-v8
auto_tag: true auto_tag: true
@ -421,22 +477,24 @@ steps:
password: password:
from_secret: container_image_registry_password from_secret: container_image_registry_password
build_args: build_args:
- CEATEREPO_VERSION=${DRONE_TAG} - CREATEREPO_VERSION=${DRONE_TAG}
volumes: volumes:
- name: docker_socket - name: docker_socket
path: /var/run/docker.sock path: /var/run/docker.sock
- name: notify - name: email-notification
image: drillster/drone-email
environment: environment:
PLUGIN_HOST: SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host from_secret: smtp_host
PLUGIN_USERNAME: SMTP_USERNAME:
from_secret: smtp_username from_secret: smtp_username
PLUGIN_PASSWORD: SMTP_PASSWORD:
from_secret: smtp_password from_secret: smtp_password
PLUGIN_FROM: image: docker.io/volkerraschek/drone-email:0.1.1
from_secret: smtp_mail_address
when: when:
status: status:
- changed - changed
@ -458,9 +516,15 @@ kind: pipeline
type: kubernetes type: kubernetes
name: tagged-manifest name: tagged-manifest
clone:
disable: true
steps: steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.2.1
- name: build-manifest - name: build-manifest
image: plugins/manifest image: docker.io/plugins/manifest:latest
settings: settings:
auto_tag: true auto_tag: true
ignore_missing: true ignore_missing: true
@ -470,21 +534,23 @@ steps:
password: password:
from_secret: container_image_registry_password from_secret: container_image_registry_password
- name: notify - name: email-notification
image: docker.io/drillster/drone-email:latest
environment: environment:
PLUGIN_HOST: SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host from_secret: smtp_host
PLUGIN_USERNAME: SMTP_USERNAME:
from_secret: smtp_username from_secret: smtp_username
PLUGIN_PASSWORD: SMTP_PASSWORD:
from_secret: smtp_password from_secret: smtp_password
PLUGIN_FROM: image: docker.io/volkerraschek/drone-email:0.1.1
from_secret: smtp_mail_address
resources: resources:
limits: limits:
cpu: 50 cpu: 150
memory: 25M memory: 150M
when: when:
status: status:
- changed - changed

View File

@ -1,9 +1,9 @@
FROM docker.io/library/rockylinux:8.5 FROM docker.io/library/rockylinux:9.2
ARG CREATEREPO_VERSION ARG CREATEREPO_VERSION
RUN yum update --assumeyes && \ RUN yum update --assumeyes && \
yum install --assumeyes bash curl yum install --assumeyes bash bash-completion
RUN if [ -z ${CREATEREPO_VERSION+x} ]; then \ RUN if [ -z ${CREATEREPO_VERSION+x} ]; then \
yum install --assumeyes createrepo_c; \ yum install --assumeyes createrepo_c; \

View File

@ -1,11 +1,11 @@
# CREATEREPO_VERSION # CREATEREPO_VERSION
# Only required to install a specifiy version # Only required to install a specifiy version
CREATEREPO_VERSION?=0.17.2 CREATEREPO_VERSION?=0.17.7
# CONTAINER_RUNTIME # CONTAINER_RUNTIME
# The CONTAINER_RUNTIME variable will be used to specified the path to a # The CONTAINER_RUNTIME variable will be used to specified the path to a
# container runtime. This is needed to start and run a container image. # container runtime. This is needed to start and run a container image.
CONTAINER_RUNTIME?=$(shell which docker) CONTAINER_RUNTIME?=$(shell which podman)
# CREATEREPO_IMAGE_REGISTRY_NAME # CREATEREPO_IMAGE_REGISTRY_NAME
# Defines the name of the new container to be built using several variables. # Defines the name of the new container to be built using several variables.

View File

@ -4,6 +4,33 @@
[![Docker Pulls](https://img.shields.io/docker/pulls/volkerraschek/createrepo)](https://hub.docker.com/r/volkerraschek/createrepo) [![Docker Pulls](https://img.shields.io/docker/pulls/volkerraschek/createrepo)](https://hub.docker.com/r/volkerraschek/createrepo)
This project contains all sources to build the container image This project contains all sources to build the container image
`docker.io/volkerraschek/createrepo`. The primary goal of this project is to package `docker.io/volkerraschek/createrepo` and the shell script `createrepo.sh`.
the binary `createrepo` as container image to provide the functionally for CI/CD
workflows or for systems which does not provide or based on RHEL. The primary goal of this project is to package the binary `createrepo` as
container image to provide the functionally for CI/CD workflows or for systems
which does contains the binary.
## createrepo.sh
The shell script `createrepo.sh` is a wrapper for the binary `createrepo`, which
is not available depending on the distribution. It starts the container image
`docker.io/volkerraschek/createrepo` in the background to call the binary. For
this reason, a container runtime like `docker` or `podman` is necessary.
### Installation
The script can be installed via the following command:
```bash
curl https://git.cryptic.systems/volker.raschek/createrepo-docker/raw/branch/master/createrepo.sh --output - | sudo tee /usr/local/bin/createrepo.sh && sudo chmod +x /usr/local/bin/createrepo.sh
```
### Usage
The script forwards all arguments directly to the binary running inside the
container. For this reason, all arguments from the original binary can be used.
```bash
createrepo.sh --update . # Update local repository
createrepo.sh --update /var/www/my-repo # Update repository based on specific path
```

20
createrepo.sh Normal file
View File

@ -0,0 +1,20 @@
#!/bin/bash
set -e
CONTAINER_RUNTIME=$(which docker)
CREATEREPO_IMAGE_FULLY_QUALIFIED=docker.io/volkerraschek/createrepo:0.17.2
CUSTOM_UID=$(getent passwd ${USER} | cut -d ':' -f 3)
CUSTOM_GID=$(getent passwd ${USER} | cut -d ':' -f 4)
# Extract last element of passed arguments
REPO_DIR=${@: -1}
${CONTAINER_RUNTIME} run \
--rm \
--volume ${REPO_DIR}:${REPO_DIR} \
--workdir ${REPO_DIR} \
--user ${CUSTOM_UID}:${CUSTOM_GID} \
${CREATEREPO_IMAGE_FULLY_QUALIFIED} ${@}

View File

@ -10,25 +10,20 @@
"automerge": true, "automerge": true,
"matchManagers": "droneci", "matchManagers": "droneci",
"matchUpdateTypes": [ "minor", "patch"] "matchUpdateTypes": [ "minor", "patch"]
},
{
"addLabels": [ "renovate/createrepo", "renovate/automerge" ],
"automerge": false,
"matchPackageNames": [ "createrepo" ],
"matchManagers": [ "regex" ]
} }
], ],
"rebaseLabel": "renovate/rebase", "rebaseLabel": "renovate/rebase",
"rebaseWhen": "behind-base-branch", "rebaseWhen": "behind-base-branch",
"regexManagers": [ "regexManagers": [
{ {
"description": "Update version", "description": "Update container image of createrepo.sh",
"fileMatch": [ "fileMatch": [
"^Makefile$" "^createrepo.sh$"
], ],
"matchStrings": [ "matchStrings": [
"CREATE_REPO_VERSION\\?=(?<currentValue>.*) # renovate: datasource=(?<datasource>.*) depName=(?<depName>.*)( lookupName=(?<lookupName>.*))?( versioning=(?<versioning>.*))?" "^CREATEREPO_IMAGE_FULLY_QUALIFIED=(?<depName>.*):(?<currentValue>.*)$"
] ],
"datasourceTemplate": "docker"
} }
] ]
} }