diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ad9a2c..85c5a32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 21137-RC2 (2019/11/17) + +* Allow to set custom `PUID`/`PGID` + ## 21137-RC1 (2019/10/24) * JetBrains License Server 21137 diff --git a/README.md b/README.md index beb658a..d123bad 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other * Multi-platform image * License server completely customizable via environment variables * Registration data and configuration in a single directory -* [Traefik](https://github.com/containous/traefik-library-image) as reverse proxy and creation/renewal of Let's Encrypt certificates +* [Traefik](https://github.com/containous/traefik-library-image) as reverse proxy and creation/renewal of Let's Encrypt certificates (see [this template](examples/traefik)) ## Docker @@ -76,8 +76,6 @@ Image: crazymax/jetbrains-license-server:latest Docker compose is the recommended way to run this image. Copy the content of folder [examples/compose](examples/compose) in `/var/jls/` on your host for example. Edit the compose and env files with your preferences and run the following commands: ```bash -touch acme.json -chmod 600 acme.json docker-compose up -d docker-compose logs -f ``` @@ -89,7 +87,7 @@ You can also use the following minimal command: ```bash $ docker run -d -p 8000:8000 --name jetbrains_license_server \ -e TZ="Europe/Paris" \ - -e JLS_VIRTUAL_HOSTS=jetbrains-license-server.example.com \ + -e JLS_VIRTUAL_HOSTS=jls.example.com \ -v $(pwd)/data:/data \ crazymax/jetbrains-license-server:latest ``` diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 8d2139f..80be213 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -1,63 +1,18 @@ version: "3.2" services: - traefik: - image: traefik:1.7-alpine - container_name: traefik - command: - - "--logLevel=INFO" - - "--defaultentrypoints=http,https" - - "--entryPoints=Name:http Address::80 Redirect.EntryPoint:https" - - "--entryPoints=Name:https Address::443 TLS" - - "--docker" - - "--docker.exposedbydefault=false" - - "--docker.domain=example.com" - - "--acme=false" - - "--acme.acmelogging=true" - - "--acme.email=webmaster@example.com" - - "--acme.storage=acme.json" - - "--acme.entryPoint=https" - - "--acme.onhostrule=true" - - "--acme.httpchallenge=true" - - "--acme.httpchallenge.entrypoint=http" - ports: - - target: 80 - published: 80 - protocol: tcp - - target: 443 - published: 443 - protocol: tcp - volumes: - - "./acme.json:/acme.json" - - "/var/run/docker.sock:/var/run/docker.sock" - restart: always - - app: + jls: image: crazymax/jetbrains-license-server:latest - container_name: jetbrains_license_server - depends_on: - - traefik + container_name: jls + ports: + - target: 8000 + published: 8000 + protocol: tcp volumes: - - "jetbrains-license-server:/data" - labels: - - "traefik.enable=true" - - "traefik.backend=jetbrains-license-server" - - "traefik.port=8000" - - "traefik.frontend.rule=Host:jetbrains-license-server.example.com,an-other-host.example.com" - 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=0123456789ABCDEF" + - "jls:/data" + env_file: + - "./jls.env" restart: always volumes: - jetbrains-license-server: + jls: diff --git a/examples/compose/jls.env b/examples/compose/jls.env new file mode 100644 index 0000000..513f19d --- /dev/null +++ b/examples/compose/jls.env @@ -0,0 +1,12 @@ +TZ=Europe/Paris +JLS_VIRTUAL_HOSTS=127.0.0.1,jls.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=0123456789ABCDEF diff --git a/examples/traefik/README.md b/examples/traefik/README.md new file mode 100644 index 0000000..3323b20 --- /dev/null +++ b/examples/traefik/README.md @@ -0,0 +1,8 @@ +## Usage + +```bash +touch acme.json +chmod 600 acme.json +docker-compose up -d +docker-compose logs -f +``` diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml new file mode 100644 index 0000000..10b1aa5 --- /dev/null +++ b/examples/traefik/docker-compose.yml @@ -0,0 +1,50 @@ +version: "3.2" + +services: + traefik: + image: traefik:1.7-alpine + container_name: traefik + command: + - "--logLevel=INFO" + - "--defaultentrypoints=http,https" + - "--entryPoints=Name:http Address::80 Redirect.EntryPoint:https" + - "--entryPoints=Name:https Address::443 TLS" + - "--docker" + - "--docker.exposedbydefault=false" + - "--docker.domain=example.com" + - "--acme=false" + - "--acme.acmelogging=true" + - "--acme.email=webmaster@example.com" + - "--acme.storage=acme.json" + - "--acme.entryPoint=https" + - "--acme.onhostrule=true" + - "--acme.httpchallenge=true" + - "--acme.httpchallenge.entrypoint=http" + ports: + - target: 80 + published: 80 + protocol: tcp + - target: 443 + published: 443 + protocol: tcp + volumes: + - "./acme.json:/acme.json" + - "/var/run/docker.sock:/var/run/docker.sock" + restart: always + + jls: + image: crazymax/jetbrains-license-server:latest + container_name: jls + volumes: + - "jls:/data" + labels: + - "traefik.enable=true" + - "traefik.backend=jls" + - "traefik.port=8000" + - "traefik.frontend.rule=Host:jls.example.com,an-other-host.example.com" + env_file: + - "./jls.env" + restart: always + +volumes: + jls: diff --git a/examples/traefik/jls.env b/examples/traefik/jls.env new file mode 100644 index 0000000..dfa6597 --- /dev/null +++ b/examples/traefik/jls.env @@ -0,0 +1,12 @@ +TZ=Europe/Paris +JLS_VIRTUAL_HOSTS=jls.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=0123456789ABCDEF