mirror of
https://github.com/11notes/docker-kms.git
synced 2025-11-09 00:16:53 +00:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f8ec600025 | ||
|
|
24a9b2f00e | ||
|
|
2e5987e07e | ||
|
|
6174e7f2e3 | ||
|
|
bde8202670 | ||
|
|
0e8ba02ebc | ||
|
|
0a8b7acd55 |
4
.github/workflows/docker.yml
vendored
4
.github/workflows/docker.yml
vendored
@@ -135,7 +135,7 @@ jobs:
|
|||||||
docker.image.tags.push(opt.input.etc.tag);
|
docker.image.tags.push(opt.input.etc.tag);
|
||||||
docker.image.tags.push(`${opt.input.etc.tag}-${docker.app.version}`);
|
docker.image.tags.push(`${opt.input.etc.tag}-${docker.app.version}`);
|
||||||
docker.cache.name = `${docker.image.name}:buildcache-${opt.input.etc.tag}`;
|
docker.cache.name = `${docker.image.name}:buildcache-${opt.input.etc.tag}`;
|
||||||
}else{
|
}else if(docker.app.version !== 'latest'){
|
||||||
const semver = docker.app.version.split('.');
|
const semver = docker.app.version.split('.');
|
||||||
docker.image.tags.push(`${context.sha.substring(0,7)}`);
|
docker.image.tags.push(`${context.sha.substring(0,7)}`);
|
||||||
if(Array.isArray(semver)){
|
if(Array.isArray(semver)){
|
||||||
@@ -145,6 +145,8 @@ jobs:
|
|||||||
}
|
}
|
||||||
if(opt.dot?.semver?.stable && new RegExp(opt.dot?.semver.stable, 'ig').test(docker.image.tags.join(','))) docker.image.tags.push('stable');
|
if(opt.dot?.semver?.stable && new RegExp(opt.dot?.semver.stable, 'ig').test(docker.image.tags.join(','))) docker.image.tags.push('stable');
|
||||||
if(opt.dot?.semver?.latest && new RegExp(opt.dot?.semver.latest, 'ig').test(docker.image.tags.join(','))) docker.image.tags.push('latest');
|
if(opt.dot?.semver?.latest && new RegExp(opt.dot?.semver.latest, 'ig').test(docker.image.tags.join(','))) docker.image.tags.push('latest');
|
||||||
|
}else{
|
||||||
|
docker.image.tags.push('latest');
|
||||||
}
|
}
|
||||||
|
|
||||||
for(const tag of docker.image.tags){
|
for(const tag of docker.image.tags){
|
||||||
|
|||||||
2
.json
2
.json
@@ -5,7 +5,7 @@
|
|||||||
"arch":"linux/amd64,linux/arm64,linux/arm/v7",
|
"arch":"linux/amd64,linux/arm64,linux/arm/v7",
|
||||||
|
|
||||||
"semver":{
|
"semver":{
|
||||||
"version":"1.0.1"
|
"version":"1.0.2"
|
||||||
},
|
},
|
||||||
|
|
||||||
"readme":{
|
"readme":{
|
||||||
|
|||||||
@@ -148,4 +148,4 @@ This image supports unraid by default. Simply add **-unraid** to any tag and the
|
|||||||
# ElevenNotes™️
|
# ElevenNotes™️
|
||||||
This image is provided to you at your own risk. Always make backups before updating an image to a different version. Check the [releases](https://github.com/11notes/docker-kms/releases) for breaking changes. If you have any problems with using this image simply raise an [issue](https://github.com/11notes/docker-kms/issues), thanks. If you have a question or inputs please create a new [discussion](https://github.com/11notes/docker-kms/discussions) instead of an issue. You can find all my other repositories on [github](https://github.com/11notes?tab=repositories).
|
This image is provided to you at your own risk. Always make backups before updating an image to a different version. Check the [releases](https://github.com/11notes/docker-kms/releases) for breaking changes. If you have any problems with using this image simply raise an [issue](https://github.com/11notes/docker-kms/issues), thanks. If you have a question or inputs please create a new [discussion](https://github.com/11notes/docker-kms/discussions) instead of an issue. You can find all my other repositories on [github](https://github.com/11notes?tab=repositories).
|
||||||
|
|
||||||
*created 21.05.2025, 08:27:53 (CET)*
|
*created 21.05.2025, 08:48:52 (CET)*
|
||||||
@@ -1,14 +1,21 @@
|
|||||||
ARG APP_UID=1000
|
# ╔═════════════════════════════════════════════════════╗
|
||||||
ARG APP_GID=1000
|
# ║ SETUP ║
|
||||||
ARG BUILD_ROOT=/git/fork-py-kms
|
# ╚═════════════════════════════════════════════════════╝
|
||||||
|
# GLOBAL
|
||||||
|
ARG APP_UID=1000 \
|
||||||
|
APP_GID=1000 \
|
||||||
|
BUILD_ROOT=/git/fork-py-kms
|
||||||
|
|
||||||
# :: Util
|
# :: FOREIGN IMAGES
|
||||||
FROM 11notes/util AS util
|
FROM 11notes/util AS util
|
||||||
|
|
||||||
# :: Build / py-kms
|
# ╔═════════════════════════════════════════════════════╗
|
||||||
|
# ║ BUILD ║
|
||||||
|
# ╚═════════════════════════════════════════════════════╝
|
||||||
|
# :: PY-KMS
|
||||||
FROM alpine/git AS build
|
FROM alpine/git AS build
|
||||||
ARG APP_VERSION
|
ARG APP_VERSION \
|
||||||
ARG BUILD_ROOT
|
BUILD_ROOT
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
git clone https://github.com/11notes/fork-py-kms -b next; \
|
git clone https://github.com/11notes/fork-py-kms -b next; \
|
||||||
cd ${BUILD_ROOT}; \
|
cd ${BUILD_ROOT}; \
|
||||||
@@ -16,53 +23,61 @@ ARG BUILD_ROOT=/git/fork-py-kms
|
|||||||
cp -R ${BUILD_ROOT}/docker/docker-py3-kms-minimal/requirements.txt ${BUILD_ROOT}/py-kms/requirements.txt; \
|
cp -R ${BUILD_ROOT}/docker/docker-py3-kms-minimal/requirements.txt ${BUILD_ROOT}/py-kms/requirements.txt; \
|
||||||
cp -R ${BUILD_ROOT}/docker/docker-py3-kms/requirements.txt ${BUILD_ROOT}/py-kms/requirements.gui.txt;
|
cp -R ${BUILD_ROOT}/docker/docker-py3-kms/requirements.txt ${BUILD_ROOT}/py-kms/requirements.gui.txt;
|
||||||
|
|
||||||
# :: Header
|
# ╔═════════════════════════════════════════════════════╗
|
||||||
|
# ║ IMAGE ║
|
||||||
|
# ╚═════════════════════════════════════════════════════╝
|
||||||
|
# :: HEADER
|
||||||
FROM 11notes/alpine:stable
|
FROM 11notes/alpine:stable
|
||||||
|
|
||||||
# :: arguments
|
# :: default arguments
|
||||||
ARG TARGETARCH
|
ARG TARGETPLATFORM \
|
||||||
ARG APP_IMAGE
|
TARGETOS \
|
||||||
ARG APP_NAME
|
TARGETARCH \
|
||||||
ARG APP_VERSION
|
TARGETVARIANT \
|
||||||
ARG APP_ROOT
|
APP_IMAGE \
|
||||||
ARG APP_UID
|
APP_NAME \
|
||||||
ARG APP_GID
|
APP_VERSION \
|
||||||
ARG APP_NO_CACHE
|
APP_ROOT \
|
||||||
|
APP_UID \
|
||||||
|
APP_GID \
|
||||||
|
APP_NO_CACHE
|
||||||
|
|
||||||
|
# :: default python image
|
||||||
|
ARG PIP_ROOT_USER_ACTION=ignore \
|
||||||
|
PIP_BREAK_SYSTEM_PACKAGES=1 \
|
||||||
|
PIP_DISABLE_PIP_VERSION_CHECK=1 \
|
||||||
|
PIP_NO_CACHE_DIR=1
|
||||||
|
|
||||||
|
# :: image specific arguments
|
||||||
ARG BUILD_ROOT
|
ARG BUILD_ROOT
|
||||||
|
|
||||||
# :: python image
|
# :: default environment
|
||||||
ARG PIP_ROOT_USER_ACTION=ignore
|
ENV APP_IMAGE=${APP_IMAGE} \
|
||||||
ARG PIP_BREAK_SYSTEM_PACKAGES=1
|
APP_NAME=${APP_NAME} \
|
||||||
ARG PIP_DISABLE_PIP_VERSION_CHECK=1
|
APP_VERSION=${APP_VERSION} \
|
||||||
ARG PIP_NO_CACHE_DIR=1
|
APP_ROOT=${APP_ROOT}
|
||||||
|
|
||||||
# :: environment
|
# :: app specific variables
|
||||||
ENV APP_IMAGE=${APP_IMAGE}
|
ENV KMS_LOCALE=1033 \
|
||||||
ENV APP_NAME=${APP_NAME}
|
KMS_ACTIVATIONINTERVAL=120 \
|
||||||
ENV APP_VERSION=${APP_VERSION}
|
KMS_RENEWALINTERVAL=259200
|
||||||
ENV APP_ROOT=${APP_ROOT}
|
|
||||||
|
|
||||||
ENV KMS_LOCALE=1033
|
|
||||||
ENV KMS_CLIENTCOUNT=26
|
|
||||||
ENV KMS_ACTIVATIONINTERVAL=120
|
|
||||||
ENV KMS_RENEWALINTERVAL=259200
|
|
||||||
ENV KMS_LOGLEVEL="INFO"
|
|
||||||
|
|
||||||
# :: multi-stage
|
# :: multi-stage
|
||||||
COPY --from=util /usr/local/bin /usr/local/bin
|
COPY --from=util /usr/local/bin /usr/local/bin
|
||||||
COPY --from=build ${BUILD_ROOT}/py-kms /opt/py-kms
|
COPY --from=build ${BUILD_ROOT}/py-kms /opt/py-kms
|
||||||
|
|
||||||
# :: Run
|
# :: RUN
|
||||||
USER root
|
USER root
|
||||||
RUN eleven printenv;
|
RUN eleven printenv;
|
||||||
|
|
||||||
# :: install application
|
# :: install dependencies
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
apk --no-cache --update add \
|
apk --no-cache --update add \
|
||||||
python3; \
|
python3; \
|
||||||
apk --no-cache --update --virtual .build add \
|
apk --no-cache --update --virtual .build add \
|
||||||
py3-pip;
|
py3-pip;
|
||||||
|
|
||||||
|
# :: install and update application
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
mkdir -p ${APP_ROOT}/var; \
|
mkdir -p ${APP_ROOT}/var; \
|
||||||
pip3 install -r /opt/py-kms/requirements.txt; \
|
pip3 install -r /opt/py-kms/requirements.txt; \
|
||||||
@@ -71,7 +86,7 @@ ARG BUILD_ROOT=/git/fork-py-kms
|
|||||||
apk del --no-network .build; \
|
apk del --no-network .build; \
|
||||||
rm -rf /usr/lib/python3.12/site-packages/pip;
|
rm -rf /usr/lib/python3.12/site-packages/pip;
|
||||||
|
|
||||||
# :: copy filesystem changes and set correct permissions
|
# :: copy root filesystem and set correct permissions
|
||||||
COPY ./rootfs /
|
COPY ./rootfs /
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
chmod +x -R /usr/local/bin; \
|
chmod +x -R /usr/local/bin; \
|
||||||
@@ -79,15 +94,16 @@ ARG BUILD_ROOT=/git/fork-py-kms
|
|||||||
${APP_ROOT} \
|
${APP_ROOT} \
|
||||||
/opt/py-kms;
|
/opt/py-kms;
|
||||||
|
|
||||||
# :: support unraid
|
# :: enable unraid support
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
eleven unraid
|
eleven unraid
|
||||||
|
|
||||||
# :: Volumes
|
# :: PERSISTENT DATA
|
||||||
VOLUME ["${APP_ROOT}/var"]
|
VOLUME ["${APP_ROOT}/var"]
|
||||||
|
|
||||||
# :: Monitor
|
# :: HEALTH
|
||||||
HEALTHCHECK --interval=5s --timeout=2s CMD netstat -an | grep -q 1688 || exit 1
|
HEALTHCHECK --interval=5s --timeout=2s --start-interval=5s \
|
||||||
|
CMD netstat -an | grep -q 1688
|
||||||
|
|
||||||
# :: Start
|
# :: EXECUTE
|
||||||
USER ${APP_UID}:${APP_GID}
|
USER ${APP_UID}:${APP_GID}
|
||||||
@@ -56,7 +56,6 @@ ${{ content_environment }}
|
|||||||
| `KMS_LOCALE` | see Microsoft LICD specification | 1033 (en-US) |
|
| `KMS_LOCALE` | see Microsoft LICD specification | 1033 (en-US) |
|
||||||
| `KMS_ACTIVATIONINTERVAL` | Retry unsuccessful after N minutes | 120 (2 hours) |
|
| `KMS_ACTIVATIONINTERVAL` | Retry unsuccessful after N minutes | 120 (2 hours) |
|
||||||
| `KMS_RENEWALINTERVAL` | re-activation after N minutes | 259200 (180 days) |
|
| `KMS_RENEWALINTERVAL` | re-activation after N minutes | 259200 (180 days) |
|
||||||
| `KMS_LOGLEVEL` | CRITICAL, ERROR, WARNING, INFO, DEBUG, MININFO | INFO |
|
|
||||||
|
|
||||||
${{ content_source }}
|
${{ content_source }}
|
||||||
|
|
||||||
|
|||||||
@@ -4,12 +4,14 @@
|
|||||||
if [ ! -z "${DEBUG}" ]; then
|
if [ ! -z "${DEBUG}" ]; then
|
||||||
KMS_LOGLEVEL="DEBUG"
|
KMS_LOGLEVEL="DEBUG"
|
||||||
eleven log debug "setting kms log level to DEBUG"
|
eleven log debug "setting kms log level to DEBUG"
|
||||||
|
else
|
||||||
|
KMS_LOGLEVEL="INFO"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd /opt/py-kms
|
cd /opt/py-kms
|
||||||
set -- "python3" \
|
set -- "python3" \
|
||||||
pykms_Server.py \
|
pykms_Server.py \
|
||||||
0.0.0.0 \
|
:: \
|
||||||
1688 \
|
1688 \
|
||||||
-l ${KMS_LOCALE} \
|
-l ${KMS_LOCALE} \
|
||||||
-a ${KMS_ACTIVATIONINTERVAL} \
|
-a ${KMS_ACTIVATIONINTERVAL} \
|
||||||
|
|||||||
Reference in New Issue
Block a user