Upgrade to JetBrains License Server 16429
This commit is contained in:
1
docker/.dockerignore
Normal file
1
docker/.dockerignore
Normal file
@@ -0,0 +1 @@
|
||||
/docker-compose.yml
|
||||
44
docker/Dockerfile
Normal file
44
docker/Dockerfile
Normal file
@@ -0,0 +1,44 @@
|
||||
FROM openjdk:8-jre-alpine
|
||||
MAINTAINER CrazyMax <crazy-max@users.noreply.github.com>
|
||||
|
||||
ARG BUILD_DATE
|
||||
ARG VCS_REF
|
||||
ARG VERSION
|
||||
|
||||
LABEL org.label-schema.build-date=$BUILD_DATE \
|
||||
org.label-schema.name="jetbrains-license-server" \
|
||||
org.label-schema.description="JetBrains License Server image based on Alpine Linux" \
|
||||
org.label-schema.version=$VERSION \
|
||||
org.label-schema.url="https://github.com/crazy-max/docker-jetbrains-license-server" \
|
||||
org.label-schema.vcs-ref=$VCS_REF \
|
||||
org.label-schema.vcs-url="https://github.com/crazy-max/docker-jetbrains-license-server" \
|
||||
org.label-schema.vendor="CrazyMax" \
|
||||
org.label-schema.schema-version="1.0"
|
||||
|
||||
RUN apk --update --no-cache add tzdata \
|
||||
&& rm -rf /var/cache/apk/* /tmp/*
|
||||
|
||||
ENV JLS_PATH="/opt/jetbrains-license-server" \
|
||||
JLS_VERSION="16429" \
|
||||
JLS_SHA256="4e3c6ecbfd95467e2332589321d259e827db8dfc6a5279f5659e22530cdb6443"
|
||||
|
||||
ADD entrypoint.sh /entrypoint.sh
|
||||
|
||||
RUN apk --update --no-cache add -t build-dependencies \
|
||||
curl zip \
|
||||
&& mkdir -p "$JLS_PATH" \
|
||||
&& curl -L "https://download.jetbrains.com/lcsrv/license-server-installer.zip" -o "/tmp/jls.zip" \
|
||||
&& echo "$JLS_SHA256 /tmp/jls.zip" | sha256sum -c - | grep OK \
|
||||
&& unzip "/tmp/jls.zip" -d "$JLS_PATH" \
|
||||
&& rm -f "/tmp/jls.zip" \
|
||||
&& chmod a+x "$JLS_PATH/bin/license-server.sh" \
|
||||
&& ln -sf "$JLS_PATH/bin/license-server.sh" "/usr/local/bin/license-server" \
|
||||
&& chmod a+x /entrypoint.sh \
|
||||
&& apk del build-dependencies \
|
||||
&& rm -rf /var/cache/apk/* /tmp/*
|
||||
|
||||
EXPOSE 80
|
||||
VOLUME [ "/data" ]
|
||||
|
||||
ENTRYPOINT [ "/entrypoint.sh" ]
|
||||
CMD [ "/usr/local/bin/license-server", "run" ]
|
||||
55
docker/docker-compose.yml
Normal file
55
docker/docker-compose.yml
Normal file
@@ -0,0 +1,55 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
proxy:
|
||||
image: jwilder/nginx-proxy:alpine
|
||||
labels:
|
||||
- com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./proxy/conf.d:/etc/nginx/conf.d:rw
|
||||
- ./proxy/vhost.d:/etc/nginx/vhost.d:rw
|
||||
- ./proxy/html:/usr/share/nginx/html:rw
|
||||
- ./proxy/certs:/etc/nginx/certs:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /var/run/docker.sock:/tmp/docker.sock:ro
|
||||
restart: always
|
||||
|
||||
letsencrypt:
|
||||
image: jrcs/letsencrypt-nginx-proxy-companion
|
||||
depends_on:
|
||||
- proxy
|
||||
volumes:
|
||||
- ./proxy/certs:/etc/nginx/certs:rw
|
||||
- ./proxy/vhost.d:/etc/nginx/vhost.d:rw
|
||||
- ./proxy/html:/usr/share/nginx/html:rw
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
restart: always
|
||||
|
||||
app:
|
||||
image: crazymax/jetbrains-license-server:latest
|
||||
depends_on:
|
||||
- letsencrypt
|
||||
- proxy
|
||||
volumes:
|
||||
- ./data:/data
|
||||
environment:
|
||||
- TZ=Europe/Paris
|
||||
- JLS_VIRTUAL_HOSTS=jetbrains-license-server.example.com,an-other-host.example.com
|
||||
- JLS_CONTEXT=/
|
||||
- JLS_ACCESS_CONFIG=/data/access-config.json
|
||||
- JLS_STATS_RECIPIENTS=webmaster@example.com,an-other-address@example.com
|
||||
- JLS_REPORT_OUT_OF_LICENSE=90
|
||||
- JLS_SMTP_SERVER=smtp.example.com
|
||||
- JLS_SMTP_PORT=25
|
||||
- JLS_SMTP_USERNAME=smtp@example.com
|
||||
- JLS_SMTP_PASSWORD=
|
||||
- JLS_STATS_FROM=jetbrains@example.com
|
||||
- JLS_STATS_TOKEN=1BFC67F51AAF99E85C2347B72E62C
|
||||
- VIRTUAL_HOST=jetbrains-license-server.example.com
|
||||
- LETSENCRYPT_HOST=jetbrains-license-server.example.com
|
||||
- LETSENCRYPT_EMAIL=webmaster@example.com
|
||||
restart: always
|
||||
72
docker/entrypoint.sh
Normal file
72
docker/entrypoint.sh
Normal file
@@ -0,0 +1,72 @@
|
||||
#!/bin/sh
|
||||
|
||||
TZ=${TZ:-"UTC"}
|
||||
JLS_PATH="/opt/jetbrains-license-server"
|
||||
JLS_LISTEN_ADDRESS="0.0.0.0"
|
||||
JLS_PORT=80
|
||||
JLS_CONTEXT=${JLS_CONTEXT:-"/"}
|
||||
JLS_ACCESS_CONFIG=${JLS_ACCESS_CONFIG:-"/data/access-config.json"}
|
||||
|
||||
# Timezone
|
||||
echo "Setting timezone to ${TZ}..."
|
||||
ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime
|
||||
echo ${TZ} > /etc/timezone
|
||||
|
||||
# Init
|
||||
echo "Initializing files and folders..."
|
||||
mkdir -p /data/registration
|
||||
ln -sf "/data/registration" "/root/.jb-license-server"
|
||||
touch "/data/access-config.json"
|
||||
|
||||
# https://www.jetbrains.com/help/license_server/setting_host_and_port.html
|
||||
echo "Configuring Jetbrains License Server..."
|
||||
license-server configure --listen ${JLS_LISTEN_ADDRESS} --port ${JLS_PORT} --context ${JLS_CONTEXT}
|
||||
|
||||
# https://www.jetbrains.com/help/license_server/setting_host_and_port.html
|
||||
if [ ! -z "$JLS_VIRTUAL_HOSTS" ] ; then
|
||||
echo "Following virtual hosts will be used :"
|
||||
for JLS_VIRTUAL_HOST in $(echo ${JLS_VIRTUAL_HOSTS} | tr "," "\n"); do
|
||||
echo "-> ${JLS_VIRTUAL_HOST}"
|
||||
done
|
||||
license-server configure --jetty.virtualHosts.names=${JLS_VIRTUAL_HOSTS}
|
||||
fi
|
||||
|
||||
# https://www.jetbrains.com/help/license_server/configuring_user_restrictions.html
|
||||
if [ -s "$JLS_ACCESS_CONFIG" ]; then
|
||||
echo "Enabling user restrictions access from $JLS_ACCESS_CONFIG..."
|
||||
license-server configure --access.config=file:${JLS_ACCESS_CONFIG}
|
||||
fi
|
||||
|
||||
# https://www.jetbrains.com/help/license_server/detailed_server_usage_statistics.html
|
||||
if [ ! -z "$JLS_SMTP_SERVER" -a ! -z "$JLS_STATS_RECIPIENTS" ] ; then
|
||||
JLS_SMTP_PORT=${JLS_SMTP_PORT:-"25"}
|
||||
echo "Enabling User Reporting via SMTP at $JLS_SMTP_SERVER:$JLS_SMTP_PORT..."
|
||||
license-server configure --smtp.server ${JLS_SMTP_SERVER} --smtp.server.port ${JLS_SMTP_PORT}
|
||||
|
||||
if [ ! -z "$JLS_SMTP_USERNAME" -a ! -z "$JLS_SMTP_PASSWORD" ] ; then
|
||||
echo "Using SMTP username $JLS_SMTP_USERNAME with password..."
|
||||
license-server configure --smtp.server.username ${JLS_SMTP_USERNAME}
|
||||
license-server configure --smtp.server.password ${JLS_SMTP_PASSWORD}
|
||||
fi
|
||||
|
||||
if [ ! -z "$JLS_STATS_FROM" ] ; then
|
||||
echo "Setting stats sender to $JLS_STATS_FROM..."
|
||||
license-server configure --stats.from ${JLS_STATS_FROM}
|
||||
fi
|
||||
|
||||
if [ "$JLS_REPORT_OUT_OF_LICENSE" -gt 0 ]; then
|
||||
echo "Setting report out of licence to $JLS_REPORT_OUT_OF_LICENSE%..."
|
||||
license-server configure --reporting.out.of.license.threshold ${JLS_REPORT_OUT_OF_LICENSE}
|
||||
fi
|
||||
|
||||
echo "Stats recipients: $JLS_STATS_RECIPIENTS..."
|
||||
license-server configure --stats.recipients ${JLS_STATS_RECIPIENTS}
|
||||
fi
|
||||
|
||||
# https://www.jetbrains.com/help/license_server/detailed_server_usage_statistics.html
|
||||
if [ ! -z "$JLS_STATS_TOKEN" ] ; then
|
||||
echo "Enabling stats via API at /$JLS_STATS_TOKEN..."
|
||||
license-server configure --reporting.token ${JLS_STATS_TOKEN}
|
||||
fi
|
||||
|
||||
exec "$@"
|
||||
Reference in New Issue
Block a user