21 Commits

Author SHA1 Message Date
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 158 additions and 104 deletions

View File

@ -10,27 +10,29 @@ steps:
- name: markdown lint
commands:
- markdownlint *.md
image: docker.io/volkerraschek/markdownlint:0.31.1
image: docker.io/volkerraschek/markdownlint:0.33.0
resources:
limits:
cpu: 50
memory: 50M
cpu: 150
memory: 150M
- name: email-notification
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
PLUGIN_USERNAME:
SMTP_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
SMTP_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
image: docker.io/drillster/drone-email:latest
image: docker.io/volkerraschek/drone-email:0.1.1
resources:
limits:
cpu: 50
memory: 25M
cpu: 150
memory: 150M
when:
status:
- changed
@ -52,7 +54,7 @@ platform:
steps:
- name: build
image: plugins/docker
image: docker.io/plugins/docker:latest
settings:
auto_tag: false
dockerfile: Dockerfile
@ -70,17 +72,19 @@ steps:
- name: docker_socket
path: /var/run/docker.sock
- name: notify
image: drillster/drone-email
- name: email-notification
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
PLUGIN_USERNAME:
SMTP_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
SMTP_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
image: docker.io/volkerraschek/drone-email:0.1.1
when:
status:
- changed
@ -115,7 +119,7 @@ platform:
steps:
- name: build
image: plugins/docker
image: docker.io/plugins/docker:latest
settings:
auto_tag: false
dockerfile: Dockerfile
@ -130,20 +134,19 @@ steps:
password:
from_secret: container_image_registry_password
- name: notify
image: drillster/drone-email
- name: email-notification
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
PLUGIN_USERNAME:
SMTP_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
SMTP_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
volumes:
- name: docker_socket
path: /var/run/docker.sock
image: docker.io/volkerraschek/drone-email:0.1.1
when:
status:
- changed
@ -178,7 +181,7 @@ platform:
steps:
- name: build
image: plugins/docker
image: docker.io/plugins/docker:latest
settings:
auto_tag: false
dockerfile: Dockerfile
@ -195,17 +198,19 @@ steps:
- name: docker_socket
path: /var/run/docker.sock
- name: notify
image: drillster/drone-email
- name: email-notification
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
PLUGIN_USERNAME:
SMTP_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
SMTP_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
image: docker.io/volkerraschek/drone-email:0.1.1
when:
status:
- changed
@ -239,7 +244,7 @@ platform:
steps:
- name: build
image: plugins/docker
image: docker.io/plugins/docker:latest
settings:
auto_tag: false
dockerfile: Dockerfile
@ -253,20 +258,19 @@ steps:
password:
from_secret: container_image_registry_password
- name: notify
image: drillster/drone-email
- name: email-notification
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
PLUGIN_USERNAME:
SMTP_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
SMTP_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
volumes:
- name: docker_socket
path: /var/run/docker.sock
image: docker.io/volkerraschek/drone-email:0.1.1
when:
status:
- changed
@ -296,7 +300,7 @@ name: latest-manifest
steps:
- name: build-manifest
image: plugins/manifest
image: docker.io/plugins/manifest:latest
settings:
auto_tag: false
ignore_missing: true
@ -306,21 +310,23 @@ steps:
password:
from_secret: container_image_registry_password
- name: notify
image: docker.io/drillster/drone-email:latest
- name: email-notification
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
PLUGIN_USERNAME:
SMTP_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
SMTP_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
image: docker.io/volkerraschek/drone-email:0.1.1
resources:
limits:
cpu: 50
memory: 25M
cpu: 150
memory: 150M
when:
status:
- changed
@ -350,7 +356,7 @@ platform:
steps:
- name: build
image: plugins/docker
image: docker.io/plugins/docker:latest
settings:
auto_tag_suffix: amd64
auto_tag: true
@ -364,22 +370,24 @@ steps:
password:
from_secret: container_image_registry_password
build_args:
- CEATEREPO_VERSION=${DRONE_TAG}
- CREATEREPO_VERSION=${DRONE_TAG}
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: notify
image: drillster/drone-email
- name: email-notification
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
PLUGIN_USERNAME:
SMTP_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
SMTP_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
image: docker.io/volkerraschek/drone-email:0.1.1
when:
status:
- changed
@ -407,7 +415,7 @@ platform:
steps:
- name: build
image: plugins/docker
image: docker.io/plugins/docker:latest
settings:
auto_tag_suffix: arm64-v8
auto_tag: true
@ -421,22 +429,24 @@ steps:
password:
from_secret: container_image_registry_password
build_args:
- CEATEREPO_VERSION=${DRONE_TAG}
- CREATEREPO_VERSION=${DRONE_TAG}
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: notify
image: drillster/drone-email
- name: email-notification
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
PLUGIN_USERNAME:
SMTP_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
SMTP_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
image: docker.io/volkerraschek/drone-email:0.1.1
when:
status:
- changed
@ -460,7 +470,7 @@ name: tagged-manifest
steps:
- name: build-manifest
image: plugins/manifest
image: docker.io/plugins/manifest:latest
settings:
auto_tag: true
ignore_missing: true
@ -470,21 +480,23 @@ steps:
password:
from_secret: container_image_registry_password
- name: notify
image: docker.io/drillster/drone-email:latest
- name: email-notification
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
PLUGIN_USERNAME:
SMTP_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
SMTP_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
image: docker.io/volkerraschek/drone-email:0.1.1
resources:
limits:
cpu: 50
memory: 25M
cpu: 150
memory: 150M
when:
status:
- changed

View File

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

View File

@ -1,11 +1,11 @@
# CREATEREPO_VERSION
# Only required to install a specifiy version
CREATEREPO_VERSION?=0.17.2
CREATEREPO_VERSION?=0.17.7
# CONTAINER_RUNTIME
# 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?=$(shell which docker)
CONTAINER_RUNTIME?=$(shell which podman)
# CREATEREPO_IMAGE_REGISTRY_NAME
# 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)
This project contains all sources to build the container image
`docker.io/volkerraschek/createrepo`. 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 not provide or based on RHEL.
`docker.io/volkerraschek/createrepo` and the shell script `createrepo.sh`.
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,
"matchManagers": "droneci",
"matchUpdateTypes": [ "minor", "patch"]
},
{
"addLabels": [ "renovate/createrepo", "renovate/automerge" ],
"automerge": false,
"matchPackageNames": [ "createrepo" ],
"matchManagers": [ "regex" ]
}
],
"rebaseLabel": "renovate/rebase",
"rebaseWhen": "behind-base-branch",
"regexManagers": [
{
"description": "Update version",
"description": "Update container image of createrepo.sh",
"fileMatch": [
"^Makefile$"
"^createrepo.sh$"
],
"matchStrings": [
"CREATE_REPO_VERSION\\?=(?<currentValue>.*) # renovate: datasource=(?<datasource>.*) depName=(?<depName>.*)( lookupName=(?<lookupName>.*))?( versioning=(?<versioning>.*))?"
]
"^CREATEREPO_IMAGE_FULLY_QUALIFIED=(?<depName>.*):(?<currentValue>.*)$"
],
"datasourceTemplate": "docker"
}
]
}