{"id":15564,"date":"2020-10-28T19:29:37","date_gmt":"2020-10-28T18:29:37","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=15564"},"modified":"2020-10-28T19:38:22","modified_gmt":"2020-10-28T18:38:22","slug":"co2-docker","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=15564","title":{"rendered":"Docker Container mit REST Service in 5 min mit CO2-Ampel Service erstellen"},"content":{"rendered":"<p>Wer noch 5 Minuten hat, kann das <a href=\"http:\/\/blog.wenzlaff.de\/?p=15541\" rel=\"noopener noreferrer\" target=\"_blank\">Beispielprojekt<\/a> mit der CO2-Ampel auch gleich in einem <a href=\"https:\/\/de.wikipedia.org\/wiki\/Docker_(Software)\" rel=\"noopener noreferrer\" target=\"_blank\">Docker<\/a> Container laufen lassen. Vorraussetzung Docker l\u00e4uft und das <a href=\"http:\/\/blog.wenzlaff.de\/?p=15541\" rel=\"noopener noreferrer\" target=\"_blank\">Beispielprojekt<\/a> wurde installiert.<br \/>\n<a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/docker.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/docker.png\" alt=\"\" width=\"640\" height=\"453\" class=\"aligncenter size-full wp-image-7031\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/docker.png 640w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/docker-300x212.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><br \/>\nDann sind, dank der automatisch generierten Docker-Files nur diese 3 Schritte im Verzeichnis der root pom n\u00f6tig:<\/p>\n<pre class=\"lang:default decode:true \" >\/\/ 1. das Projekt bauen\r\nmvn package -Dquarkus.package.type=fast-jar\r\n\r\n\/\/ 2. das Image bauen, man beachte den Punkt am Ende\r\ndocker build -f src\/main\/docker\/Dockerfile.fast-jar -t quarkus\/info-kleinhirn-fast-jar .\r\n\r\n\/\/ 3. den Container starten mit\r\ndocker run -i --rm -p 8080:8080 quarkus\/info-kleinhirn-fast-jar\r\n<\/pre>\n<p>Schon l\u00e4uft der CO2 Service <a href=\"http:\/\/localhost:8080\/v1\/rest\/co2\" rel=\"noopener noreferrer\" target=\"_blank\">http:\/\/localhost:8080\/v1\/rest\/co2<\/a> und CO2-Ampel \u00fcber <a href=\"http:\/\/localhost:8080\/v1\/rest\/co2ampel\" rel=\"noopener noreferrer\" target=\"_blank\">http:\/\/localhost:8080\/v1\/rest\/co2ampel<\/a> <\/p>\n<p><strong>Cool<\/strong>. Und hier das Dockerfile &#8230;<!--more--><\/p>\n<pre class=\"lang:default decode:true \" >\r\n\r\nFROM registry.access.redhat.com\/ubi8\/ubi-minimal:8.1\r\n\r\nARG JAVA_PACKAGE=java-11-openjdk-headless\r\nARG RUN_JAVA_VERSION=1.3.8\r\n\r\nENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'\r\n\r\nRUN microdnf install curl ca-certificates ${JAVA_PACKAGE} \\\r\n    &amp;&amp; microdnf update \\\r\n    &amp;&amp; microdnf clean all \\\r\n    &amp;&amp; mkdir \/deployments \\\r\n    &amp;&amp; chown 1001 \/deployments \\\r\n    &amp;&amp; chmod \"g+rwX\" \/deployments \\\r\n    &amp;&amp; chown 1001:root \/deployments \\\r\n    &amp;&amp; curl https:\/\/repo1.maven.org\/maven2\/io\/fabric8\/run-java-sh\/${RUN_JAVA_VERSION}\/run-java-sh-${RUN_JAVA_VERSION}-sh.sh -o \/deployments\/run-java.sh \\\r\n    &amp;&amp; chown 1001 \/deployments\/run-java.sh \\\r\n    &amp;&amp; chmod 540 \/deployments\/run-java.sh \\\r\n    &amp;&amp; echo \"securerandom.source=file:\/dev\/urandom\" &gt;&gt; \/etc\/alternatives\/jre\/lib\/security\/java.security\r\n\r\nENV JAVA_OPTIONS=\"-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager\"\r\n\r\nCOPY --chown=1001 target\/quarkus-app\/lib\/ \/deployments\/lib\/\r\nCOPY --chown=1001 target\/quarkus-app\/*.jar \/deployments\/\r\nCOPY --chown=1001 target\/quarkus-app\/app\/ \/deployments\/app\/\r\nCOPY --chown=1001 target\/quarkus-app\/quarkus\/ \/deployments\/quarkus\/\r\n\r\nEXPOSE 8080\r\nUSER 1001\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>co2-docker<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[220,4084,2791,3897,3773,3163,79,1023],"tags":[],"class_list":["post-15564","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-co2","category-docker","category-java-programmierung","category-mac-os","category-maven","category-programmierung","category-raspberry-pi"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/15564","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15564"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/15564\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15564"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15564"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15564"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}