Было в планах написание полноценного постав на эту тему, но пока — просто быстрый пример создания и запуска Docker-образов.
Создаём каталог для проекта:
$ mkdir /tmp/docker_test/QAreports7 && cd /tmp/docker_test/QAreports7
Создаём Dockerfile
:
FROM java:8 MAINTAINER User "[email protected]" COPY eod-report-0.0.1-SNAPSHOT.jar /opt ENTRYPOINT ["/usr/bin/java", "-jar"] CMD ["/opt/eod-report-0.0.1-SNAPSHOT.jar", "--server.port=8080"]
Собираем образ:
$ docker build -t qareport7 . Sending build context to Docker daemon 24.71 MB Step 1 : FROM java:8 ---> c1ccce98b537 Step 2 : MAINTAINER User "[email protected]" ---> Using cache ---> 8d38ce2a9cc9 Step 3 : COPY eod-report-0.0.1-SNAPSHOT.jar /opt ---> Using cache ---> e3dd7e5cb667 Step 4 : ENTRYPOINT /usr/bin/java -jar ---> Running in 745f05468849 ---> b6e3f9b0eadc Removing intermediate container 745f05468849 Step 5 : CMD /opt/eod-report-0.0.1-SNAPSHOT.jar ---> Running in 963c74d6b82c ---> 7bfb339a0c2b Removing intermediate container 963c74d6b82c Successfully built 7bfb339a0c2b
Проверяем:
$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE qareport7 latest 7bfb339a0c2b 3 minutes ago 666.6 MB ...
Запускаем работать в бекграунде:
$ docker run -p 8080:8080 -d qareport7 7c900e34f8ab96424ddda0da6f0e5f71d01ca7c3f8d4b673e811858002c7aa5d
Проверяем:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7c900e34f8ab qareport7 "/usr/bin/java -jar /" 3 minutes ago Up 3 minutes 0.0.0.0:8080->8080/tcp lonely_feynman
Смотрим логи — запустилось ли приложение после запуска контейнера:
$ docker logs -f 7c900e34f8ab . ____ _ __ _ _ /\ / ___'_ __ _ _(_)_ __ __ _ ( ( )___ | '_ | '_| | '_ / _` | \/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |___, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.2.7.RELEASE) 2015-11-09 13:59:25.146 INFO 1 --- [ main] com.akqa.eodreport.EodReportApplication : Starting EodReportApplication v0.0.1-SNAPSHOT on 7c900e34f8ab with PID 1 (/opt/eod-report-0.0.1-SNAPSHOT.jar started by root in /) 2015-11-09 13:59:25.183 INFO 1 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@4753abf4: startup date [Mon Nov 09 13:59:25 UTC 2015]; root of context hierarchy ...
Пробуем подключиться к приложению в контейнере:
$ curl 127.0.0.1:8080 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>QA Daily Reports</title> </head> <body> </body> </html>
Готово.