mirror of
https://github.com/11notes/docker-kms.git
synced 2025-10-22 20:42:17 +00:00
Compare commits
5 Commits
bde8202670
...
a3c4b0ccbf
Author | SHA1 | Date | |
---|---|---|---|
|
a3c4b0ccbf | ||
|
f8ec600025 | ||
|
24a9b2f00e | ||
|
2e5987e07e | ||
|
6174e7f2e3 |
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.app.version}`);
|
||||
docker.cache.name = `${docker.image.name}:buildcache-${opt.input.etc.tag}`;
|
||||
}else{
|
||||
}else if(docker.app.version !== 'latest'){
|
||||
const semver = docker.app.version.split('.');
|
||||
docker.image.tags.push(`${context.sha.substring(0,7)}`);
|
||||
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?.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){
|
||||
|
2
.json
2
.json
@@ -5,7 +5,7 @@
|
||||
"arch":"linux/amd64,linux/arm64,linux/arm/v7",
|
||||
|
||||
"semver":{
|
||||
"version":"1.0.1"
|
||||
"version":"1.0.2"
|
||||
},
|
||||
|
||||
"readme":{
|
||||
|
17
README.md
17
README.md
@@ -1,7 +1,7 @@
|
||||

|
||||
|
||||
# KMS
|
||||
[<img src="https://img.shields.io/badge/github-source-blue?logo=github&color=040308">](https://github.com/11notes/docker-KMS)[<img src="https://img.shields.io/github/issues/11notes/docker-KMS?color=7842f5">](https://github.com/11notes/docker-KMS/issues)
|
||||
[<img src="https://img.shields.io/github/issues/11notes/docker-KMS?color=7842f5">](https://github.com/11notes/docker-KMS/issues)
|
||||
|
||||
Activate any version of Windows and Office, forever
|
||||
|
||||
@@ -104,24 +104,23 @@ slmgr /ato
|
||||
| `KMS_LOCALE` | see Microsoft LICD specification | 1033 (en-US) |
|
||||
| `KMS_ACTIVATIONINTERVAL` | Retry unsuccessful after N minutes | 120 (2 hours) |
|
||||
| `KMS_RENEWALINTERVAL` | re-activation after N minutes | 259200 (180 days) |
|
||||
| `KMS_LOGLEVEL` | CRITICAL, ERROR, WARNING, INFO, DEBUG, MININFO | INFO |
|
||||
|
||||
# MAIN TAGS 🏷️
|
||||
These are the main tags for the image. There is also a tag for each commit and its shorthand sha256 value.
|
||||
|
||||
* [1.0.1](https://hub.docker.com/r/11notes/kms/tags?name=1.0.1)
|
||||
* [1.0.1-unraid](https://hub.docker.com/r/11notes/kms/tags?name=1.0.1-unraid)
|
||||
* [1.0.2](https://hub.docker.com/r/11notes/kms/tags?name=1.0.2)
|
||||
* [1.0.2-unraid](https://hub.docker.com/r/11notes/kms/tags?name=1.0.2-unraid)
|
||||
|
||||
### There is no latest tag, what am I supposed to do about updates?
|
||||
It is of my opinion that the ```:latest``` tag is super dangerous. Many times, I’ve introduced **breaking** changes to my images. This would have messed up everything for some people. If you don’t want to change the tag to the latest [semver](https://semver.org/), simply use the short versions of [semver](https://semver.org/). Instead of using ```:1.0.1``` you can use ```:1``` or ```:1.0```. Since on each new version these tags are updated to the latest version of the software, using them is identical to using ```:latest``` but at least fixed to a major or minor version.
|
||||
It is of my opinion that the ```:latest``` tag is super dangerous. Many times, I’ve introduced **breaking** changes to my images. This would have messed up everything for some people. If you don’t want to change the tag to the latest [semver](https://semver.org/), simply use the short versions of [semver](https://semver.org/). Instead of using ```:1.0.2``` you can use ```:1``` or ```:1.0```. Since on each new version these tags are updated to the latest version of the software, using them is identical to using ```:latest``` but at least fixed to a major or minor version.
|
||||
|
||||
If you still insist on having the bleeding edge release of this app, simply use the ```:rolling``` tag, but be warned! You will get the latest version of the app instantly, regardless of breaking changes or security issues or what so ever. You do this at your own risk!
|
||||
|
||||
# REGISTRIES ☁️
|
||||
```
|
||||
docker pull 11notes/kms:1.0.1
|
||||
docker pull ghcr.io/11notes/kms:1.0.1
|
||||
docker pull quay.io/11notes/kms:1.0.1
|
||||
docker pull 11notes/kms:1.0.2
|
||||
docker pull ghcr.io/11notes/kms:1.0.2
|
||||
docker pull quay.io/11notes/kms:1.0.2
|
||||
```
|
||||
|
||||
# UNRAID VERSION 🟠
|
||||
@@ -148,4 +147,4 @@ This image supports unraid by default. Simply add **-unraid** to any tag and the
|
||||
# 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).
|
||||
|
||||
*created 21.05.2025, 08:48:52 (CET)*
|
||||
*created 11.06.2025, 09:30:02 (CET)*
|
@@ -1,14 +1,21 @@
|
||||
ARG APP_UID=1000
|
||||
ARG APP_GID=1000
|
||||
ARG BUILD_ROOT=/git/fork-py-kms
|
||||
# ╔═════════════════════════════════════════════════════╗
|
||||
# ║ SETUP ║
|
||||
# ╚═════════════════════════════════════════════════════╝
|
||||
# GLOBAL
|
||||
ARG APP_UID=1000 \
|
||||
APP_GID=1000 \
|
||||
BUILD_ROOT=/git/fork-py-kms
|
||||
|
||||
# :: Util
|
||||
# :: FOREIGN IMAGES
|
||||
FROM 11notes/util AS util
|
||||
|
||||
# :: Build / py-kms
|
||||
# ╔═════════════════════════════════════════════════════╗
|
||||
# ║ BUILD ║
|
||||
# ╚═════════════════════════════════════════════════════╝
|
||||
# :: PY-KMS
|
||||
FROM alpine/git AS build
|
||||
ARG APP_VERSION
|
||||
ARG BUILD_ROOT
|
||||
ARG APP_VERSION \
|
||||
BUILD_ROOT
|
||||
RUN set -ex; \
|
||||
git clone https://github.com/11notes/fork-py-kms -b next; \
|
||||
cd ${BUILD_ROOT}; \
|
||||
@@ -16,51 +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/requirements.txt ${BUILD_ROOT}/py-kms/requirements.gui.txt;
|
||||
|
||||
# :: Header
|
||||
# ╔═════════════════════════════════════════════════════╗
|
||||
# ║ IMAGE ║
|
||||
# ╚═════════════════════════════════════════════════════╝
|
||||
# :: HEADER
|
||||
FROM 11notes/alpine:stable
|
||||
|
||||
# :: arguments
|
||||
ARG TARGETARCH
|
||||
ARG APP_IMAGE
|
||||
ARG APP_NAME
|
||||
ARG APP_VERSION
|
||||
ARG APP_ROOT
|
||||
ARG APP_UID
|
||||
ARG APP_GID
|
||||
ARG APP_NO_CACHE
|
||||
# :: default arguments
|
||||
ARG TARGETPLATFORM \
|
||||
TARGETOS \
|
||||
TARGETARCH \
|
||||
TARGETVARIANT \
|
||||
APP_IMAGE \
|
||||
APP_NAME \
|
||||
APP_VERSION \
|
||||
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
|
||||
|
||||
# :: python image
|
||||
ARG PIP_ROOT_USER_ACTION=ignore
|
||||
ARG PIP_BREAK_SYSTEM_PACKAGES=1
|
||||
ARG PIP_DISABLE_PIP_VERSION_CHECK=1
|
||||
ARG PIP_NO_CACHE_DIR=1
|
||||
# :: default environment
|
||||
ENV APP_IMAGE=${APP_IMAGE} \
|
||||
APP_NAME=${APP_NAME} \
|
||||
APP_VERSION=${APP_VERSION} \
|
||||
APP_ROOT=${APP_ROOT}
|
||||
|
||||
# :: environment
|
||||
ENV APP_IMAGE=${APP_IMAGE}
|
||||
ENV APP_NAME=${APP_NAME}
|
||||
ENV APP_VERSION=${APP_VERSION}
|
||||
ENV APP_ROOT=${APP_ROOT}
|
||||
|
||||
ENV KMS_LOCALE=1033
|
||||
ENV KMS_ACTIVATIONINTERVAL=120
|
||||
ENV KMS_RENEWALINTERVAL=259200
|
||||
# :: app specific variables
|
||||
ENV KMS_LOCALE=1033 \
|
||||
KMS_ACTIVATIONINTERVAL=120 \
|
||||
KMS_RENEWALINTERVAL=259200
|
||||
|
||||
# :: multi-stage
|
||||
COPY --from=util /usr/local/bin /usr/local/bin
|
||||
COPY --from=build ${BUILD_ROOT}/py-kms /opt/py-kms
|
||||
|
||||
# :: Run
|
||||
# :: RUN
|
||||
USER root
|
||||
RUN eleven printenv;
|
||||
|
||||
# :: install application
|
||||
# :: install dependencies
|
||||
RUN set -ex; \
|
||||
apk --no-cache --update add \
|
||||
python3; \
|
||||
apk --no-cache --update --virtual .build add \
|
||||
py3-pip;
|
||||
|
||||
# :: install and update application
|
||||
RUN set -ex; \
|
||||
mkdir -p ${APP_ROOT}/var; \
|
||||
pip3 install -r /opt/py-kms/requirements.txt; \
|
||||
@@ -69,7 +86,7 @@ ARG BUILD_ROOT=/git/fork-py-kms
|
||||
apk del --no-network .build; \
|
||||
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 /
|
||||
RUN set -ex; \
|
||||
chmod +x -R /usr/local/bin; \
|
||||
@@ -77,16 +94,16 @@ ARG BUILD_ROOT=/git/fork-py-kms
|
||||
${APP_ROOT} \
|
||||
/opt/py-kms;
|
||||
|
||||
# :: support unraid
|
||||
# :: enable unraid support
|
||||
RUN set -ex; \
|
||||
eleven unraid
|
||||
|
||||
# :: Volumes
|
||||
# :: PERSISTENT DATA
|
||||
VOLUME ["${APP_ROOT}/var"]
|
||||
|
||||
# :: Monitor
|
||||
# :: HEALTH
|
||||
HEALTHCHECK --interval=5s --timeout=2s --start-interval=5s \
|
||||
CMD netstat -an | grep -q 1688
|
||||
|
||||
# :: Start
|
||||
# :: EXECUTE
|
||||
USER ${APP_UID}:${APP_GID}
|
@@ -11,7 +11,7 @@
|
||||
cd /opt/py-kms
|
||||
set -- "python3" \
|
||||
pykms_Server.py \
|
||||
0.0.0.0 \
|
||||
:: \
|
||||
1688 \
|
||||
-l ${KMS_LOCALE} \
|
||||
-a ${KMS_ACTIVATIONINTERVAL} \
|
||||
|
Reference in New Issue
Block a user