JetBrains Products License Server in docker
Jan 29, 2018 09:22 · 376 words · 2 minute read
В последнее время после обновления PhpStorm (особенно до версии 2017.3.3) все чаще “слетает” активация продукта по методу “License server” - за последние пару дней приходилось раз 5 менять адрес сервера лицензий.
Давайте разберемся как поднять свой сервер лицензий для продуктов JetBrains в docker-контейнере и навсегда забыть о проблемах с активацией PhpStorm!
Считаем, что docker уже установлен и настроен. В моем примере используется самая последняя версия Docker for Mac из канала Edge:
docker -v
Docker version 18.01.0-ce, build 03596f5
Создаем каталог для работы и переходим в него:
mkdir -p ~/Code/jb-license-server && cd ~/Code/jb-license-server
В каталоге создадим Dockerfile с инструкциями для сборки docker-образа:
nano Dockerfile
Содержимое файла будет следующим:
FROM node:9.4.0-alpine
RUN apk add --update sudo \
&& sudo npm install ilsap -g --unsafe-perm \
&& rm -rf /var/cache/apk/*
EXPOSE 8997
CMD ilsap
Собираем docker-образ командой:
docker build -t my-license-server:v1 .
Запускаем контейнер из созданного docker-образа:
docker run -d --name my-license-server -p 8997:8997 --restart=always my-license-server:v1
После старта контейнера смотрим его логи:
docker logs my-license-server
Вывод должен быть примерно таким:
Starting server...
Redirecting requests to http://xidea.online
Listening on http://0.0.0.0:8997 <- Use this url to register your product
Далее для активации продукта в PhpStorm в поле “License server address” вводим адрес из лога - http://0.0.0.0:8997
, жмем кнопку “Activate” и забываем о проблемах с активацией PhpStorm навсегда!
Описанный метод должен работать и для активации других продуктов JetBrains, однако я проверял только на примере PhpStorm.
Кроме того, доступно еще несколько дополнительных опций для запуска личного JetBrains Products License Server - узнать о них можно с помощью такой команды:
docker run --rm --name my-license-server -p 8997:8997 my-license-server:v1 ilsap --help
Результат выполнения будет следующим:
Usage: ilsap [options]
Options:
-V, --version output the version number
-h, --host <host> hostname to listen on (default: 0.0.0.0)
-p, --port <port> port to listen on (default: 8997)
-s, --server <server> license server url (default: http://xidea.online)
-n, --ngrok start a ngrok server pointed to your local port
-h, --help output usage information
Примечание. Если собираетесь переопределить порт по умолчанию, не забудьте также изменить его и в Dockerfile (инструкция EXPOSE
).
Например, если вы хотите проксировать запросы из docker-контейнера на другой сервер лицензирования, можно это сделать так:
docker run -d --name my-license-server -p 8997:8997 --restart=always my-lic-server:v1 ilsap -s http://idea.ibdyr.com
Если нет желания собирать docker-образ самостоятельно - можете воспользоваться готовым из Docker Hub.