Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Содержание
- Установка из репозитория
- Установка из исходников
Здесь будет описана работа с Linux (TangoBox 9.3 на основе Ubuntu 18.04).
Установка из репозитория
Получаем последнюю версию docker-а из репозитория и запускаем его.
docker pull tangocs/rest-server:rest-server-2.1
docker run --restart unless-stopped -p 8080:8080 -d tangocs/rest-server:rest-server-2.1
Смотрим результат выполнения. В список контейнеров добавился tangocs/rest-server.
Список запущенных контейнеров пополнил tangocs/rest-server:rest-server-2.1.
Проверка работоспособности:
Важный акцент, в системе TangoBox 9.3 изначально работает старый RestServer. Работает он не в docker-е, а в самой системе!
Проверка его работы:
Работает на 10001 порту, и поскольку он работает в системе, то обратится может к Tango Controls как к localhost, чего не сможет docker.
http://localhost:10001/tango/rest/rc4/hosts/localhost/10000/devices/sys/tg_test/1/attributes/double_scalar/value
Так же его API устарело.
docker работает на 8080 порту, и его порт проброшен в систему. Но обращаться к Tango Controls он должен по ip адресу системы 172.17.0.1 где тот работает!
http://localhost:8080/tango/rest/v10/hosts/172.17.0.1;port=10000/devices/sys/tg_test/1/attributes/double_scalar/value
Репозиторий содержит не последнюю версию. Установить последнюю версию можно из исходников, на текущий момент 2.2.
Установка из исходников
Последняя версия TangoRestServer.
git clone https://github.com/tango-controls/rest-server.git
cd rest-server
Собирается docker под java версии 11, но все в системе работает под 8-ой версий.
Временно поменяем версию по умолчанию с 8 на 11.
sudo update-alternatives --config java
mvn package
docker build -t tangocs/rest-server:rest-server-2.2 .
Получил следующую ошибку:
COPY failed: file not found in build context or excluded by .dockerignore: stat target/.war: file does not exist
Открываем Dockerfile и меняем
COPY target/${REST_SERVER_VERSION}.war /usr/local/tomcat/webapps/tango.war
на
COPY target/rest-server-2.2-SNAPSHOT.war /usr/local/tomcat/webapps/tango.war
Т.к. docker собрался с именем rest-server-2.2-SNAPSHOT.war
Смотрим список образов:
Теперь запускаем наш docker, он будет работать на 8080 порту.
docker run --restart unless-stopped -p 8080:8080 -d tangocs/rest-server:rest-server-2.2
Процедура проверки работоспособности такая же как и в 1-ом абзаце.
Переключим версию java назад на 8-ую.
sudo update-alternatives --config java
Спасибо за внимание.