Programim dhe zhvillim, javascript, python, php, html

Openshift pod ankohet për mungesën e drejtorive për imazhin

Kam testuar imazhin tim ApachedMQ në Ubuntu dhe funksionon mirë me Docker. Në Openshift vendosja e të njëjtit imazh nuk funksionon. Duhet të funksionojë jashtë kutisë, ashtu si Ubuntu, por gjithmonë ankohet për mungesën e drejtorive në pod, ose mungesën e lejeve në drejtoritë në pod. Më poshtë do të shihni gabimet në lidhje me të parën.

Unë jam duke përdorur edicionin FALAS të Openshift online v3.x Po përdor vetëm konsolën për t'u vendosur nga imazhi. Më poshtë vetëm një mostër e mesazheve të regjistrit kur pod po rritet për vendosjen.

java.io.FileNotFoundException: /opt/activemq/data/activemq.log (Permission denied)
Caused by: java.io.IOException: Failed to create directory '/opt/activemq/data/kahadb'

Çdo ndihmë do të vlerësohej shumë, pasi ky imazh duhet të jetë IMO, që mund të vendoset nga tastiera pa ndonjë YAML dhe oc CLI të nevojshme. Disa informacione për gjurmët e regjistrit: INFO: Loading '/opt/activemq/bin/env' INFO: Using java '/docker-java-home/jre/bin/java' INFO: Starting in foreground, this is just for debugging purposes (stop process by pressing CTRL+C) INFO: Creating pidfile /opt/activemq/data/activemq.pid bin/activemq: 484: bin/activemq: cannot create /opt/activemq/data/activemq.pid: Permission denied Java Runtime: Oracle Corporation 1.8.0_141 /usr/lib/jvm/java-8-openjdk-amd64/jre Heap sizes: current=62976k free=58714k max=932352k JVM args: -Xms64M -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=/opt/activemq/conf/login.config -Dcom.sun.management.jmxremote -Djava.awt.headless=true -Djava.io.tmpdir=/opt/activemq/tmp -Dactivemq.classpath=/opt/activemq/conf:/opt/activemq/../lib/: -Dactivemq.home=/opt/activemq -Dactivemq.base=/opt/activemq -Dactivemq.conf=/opt/activemq/conf -Dactivemq.data=/opt/activemq/data Extensions classpath: [/opt/activemq/lib,/opt/activemq/lib/camel,/opt/activemq/lib/optional,/opt/activemq/lib/web,/opt/activemq/lib/extra] ACTIVEMQ_HOME: /opt/activemq ACTIVEMQ_BASE: /opt/activemq ACTIVEMQ_CONF: /opt/activemq/conf ACTIVEMQ_DATA: /opt/activemq/data log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: /opt/activemq/data/activemq.log (Permission denied) ... log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: /opt/activemq/data/audit.log (Permission denied) ... Loading message broker from: xbean:activemq.xml INFO | Refreshing org.apache.activemq.xbean.XBeanBrokerFactory$1@5bcab519: startup date [Fri Mar 16 21:10:18 UTC 2018]; root of context hierarchy WARN | Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.activemq.xbean.XBeanBrokerService#0' defined in class path resource [activemq.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: java.io.IOException: Failed to create directory '/opt/activemq/data/kahadb' ERROR | Failed to load: class path resource [activemq.xml], reason: Error creating bean with name 'org.apache.activemq.xbean.XBeanBrokerService#0' defined in class path resource [activemq.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: java.io.IOException: Failed to create directory '/opt/activemq/data/kahadb' org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.activemq.xbean.XBeanBrokerService#0' defined in class path resource [activemq.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: java.io.IOException: Failed to create directory '/opt/activemq/data/kahadb'

Prova e ZGJIDHUR::fut përshkrimin e imazhit këtu


  • Nën OpenShift, imazhi juaj zakonisht nuk do të lejohet të ekzekutohet si root, prandaj do të keni këto probleme. Është më mirë t'i dizajnoni imazhet tuaja në mënyrë që ato të mos funksionojnë si root, por të mund të ekzekutohen si një ID përdoruesi e caktuar në mënyrë arbitrare. Shiko udhëzimet në docs.openshift.org/latest/creating_images/guidelines.html 16.03.2018
  • Faleminderit Graham. Duket se është kështu, dmth keni të drejtë. Kam harruar se në testin tim të Ubuntu kam përdorur sudo për të ekzekutuar komandën time të ekzekutimit docker. Pa sudo, ka të njëjtat probleme me lejet si gjurma e regjistrit në Openshift. Kjo sigurisht ngre pyetjen: Si të konfiguroni podin që të ketë kredencialet që përputhen me atë të ID-së së përdoruesit të caktuar në mënyrë arbitrare. Por mendoj se do ta zbuloj. Shumë faleminderit. 16.03.2018
  • Përdorimi i sudo docker run nuk do të bënte ndryshim. Ai bazohet nëse USER ishte vendosur në Dockerfile. Nëse nuk është caktuar, do të funksionojë si rrënjë brenda kontejnerit gjithsesi. 16.03.2018
  • Për sa i përket ekzekutimit si jo root, sigurohuni që të lexoni seksionin Mbështeni ID-të arbitrare të përdoruesve të atij dokumenti të lidhur. 16.03.2018
  • Vetëm për hir të pasardhësve, nëse dikush po i lexon këto përgjigje, nëse imazhi që përdoret nuk është i ndryshueshëm (d.m.th. i rindërtueshëm, ose kërkon absolutisht privacione rrënjësore.) atëherë metoda tjetër më pak e sigurt do të ishte të Aktivizoni imazhet për të ekzekutuar me USER në Dockerfile këtu në këtë referencë për administratorin për Openshift: docs.openshift.org/latest/admin_guide/ 16.03.2018
  • Sikur të ishte kaq e thjeshtë! Për projektin Openshift që ekzekuton komandën e përmendur më sipër, jep një përgjigje Error from server (Forbidden): securitycontextconstraints.security.openshift.io "privileged" is forbidden:. ‹br› Ju do të kishit menduar për një rast përdorimi si ky që duhet të jetë një doddle. 16.03.2018
  • Sapo gjeta një referencë për këtë problem në Playground (OpenShift 3.7)..learn.openshift.com/ terrenet e lojërave/openshift37 (lëvizni poshtë në anën e majtë deri në fund dhe do të shihni [Running Images as a Defined User]. 16.03.2018
  • Nëse përpiqeni të ekzekutoni një imazh arbitrar nga një regjistër imazhi i jashtëm, si Docker Hub, i cili nuk është ndërtuar sipas praktikave më të mira, ose kërkon që ai të ekzekutohet si rrënjë, mund të mos funksionojë si rezultat. Për të ekzekutuar një imazh të tillë, do t'ju duhet t'i jepni privilegje shtesë projektit që krijoni për ta lejuar atë të ekzekutojë një imazh aplikacioni si çdo ID përdoruesi. Kjo mund të bëhet duke ekzekutuar komandën: oc adm policy add-scc-to-user anyuid -z default -n myproject --as system:admin 16.03.2018
  • Fatkeqësisht, unë nuk e përdor këndin e lojërave Openshift. Unë jam duke përdorur një shembull Starter të OpenShift. Pra, kur ekzekutoj komandën e mësipërme, më jep të njëjtin gabim sigurie dhe thotë se përdoruesi im nuk lejohet të ketë këto të drejta të ngritura në nivelin e grupit. 16.03.2018
  • Epo, gjetjet e mia vazhdojnë. Ajo që bëra ishte përdorimi i Playground, i cili pranon me sukses komandën *oc adm policy ... *. I tregoj të njëjtin imazh për apacheMQ dhe marr të njëjtat gabime të skedarëve që mungojnë si shembulli jo i fushës së lojërave të shembullit Openshift që po përdor, i cili NUK lejon të njëjtin ndryshim të politikës. Prandaj, kjo nuk mund të jetë shkaku kryesor. Këtu janë disa nga gabimet: log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: /opt/activemq/data/audit.log (Permission denied) 16.03.2018
  • Jepni një lidhje me dokumentacionin/burimin e imazhit që po përpiqeni të përdorni. A thonë udhëzimet për atë imazh që ju duhet të montoni një vëllim në kontejner kur po ekzekutohet? 16.03.2018
  • Këtu është depo...Po shikoja në Dockerfile për disa të dhëna. hub.docker.com/r/rmohr/activemq/~/dockerfile 17.03.2018
  • Sapo shtova informacionin e gjurmës së regjistrit në pyetjen origjinale. Problemi duket të jetë me lejet për direktorinë $APACHEMQ_HOME/data që nuk mund të shkruhet as nga Log4J, as nga këmbëngulja e përdorur nga MQ. POD dështon aq shpejt sa nuk jam në gjendje të hyj në kontejner dhe të kontrolloj gjërat. 17.03.2018
  • E ZGJIDHA ›...... 17.03.2018
  • Unë përdora Playground (shih më lart) ekzekutova të gjitha komandat duke përfshirë komandën e të drejtave të administratorit. Më pas importova imazhin dhe vendosa ACTIVEMQ_DATA në /tmp. Më pas u vendosa dhe funksionon...thjesht do të testoja rrugën. Më pas do t'i hartoj të dhënat si më sipër në versionin tim jo-Playground...dhe do të shoh se çfarë ndodh. Jam i tronditur pak, tani e provoj këtë për 4 ditë. 17.03.2018
  • Po funksionon perfekt. Itinerari funksionon...si mund ta ngjis këtu provën e url-së..?? Do ta ngjis në pyetjen origjinale. Faleminderit shumë për ndihmën tuaj @Graham. 17.03.2018
  • Mund të korrigjoni problemet e nisjes duke ekzekutuar oc debug dc/yourappname. Kjo do të japë një guaskë ndërvepruese ku më pas mund ta nisni vetë aplikacionin, duke ndryshuar fillimisht çdo gjë në mjedis ose skedarë të konfigurueshëm të shkruajtshëm. 17.03.2018
  • /tmp në grupin jo-shesh lojërash Openshift v3.7 që po përdor (versioni FALAS) është i paracaktuar në Not Writeable. Pra, dështon atje. Dua të them se si në tokë /tmp nuk mund të shkruhet. 17.03.2018

Përgjigjet:


1

Në mënyrë që imazhi të vendoset me sukses, duhet të bëhen sa më poshtë në grup:

  1. oc adm policy add-scc-to-user anyuid -z default -n myproject --as system:admin
  2. Kur vendoseni, vendosni ndryshoren e mjedisit ACTIVEMQ_DATA në /tmp

Do të vazhdoj të gjej alternativa të tjera duke përfshirë një rindërtim të imazhit, duke krijuar një pod me lejet e nevojshme për direktorinë $APACHEMQ_DATA.

Më poshtë prova e rrugës që punon në shembullin e sheshit të lojërave. Eshte ne rregull. për ta ngjitur pasi sheshi i lojërave do të skadojë në 10 minutat e ardhshme.

fut përshkrimin e imazhit këtu

17.03.2018

2

E korrigjova imazhin. Skedari docker mund të gjendet këtu në forkun tim: https://github.com/beezerbt/docker-activemq/tree/master/5.14.5-openshift-v3.9.14

Imazhi për sa më sipër mund të gjendet këtu: https://hub.docker.com/r/beezer/openshift-ready-mq/tags/ Etiketa::[5.14.5-3.9.14]

Së fundi, meqenëse imazhi ka një qëndrueshmëri efemerale, një vëllim mund të hartohet në /app brenda grupit openshift mjaft lehtë; megjithatë mos harroni se duhet të vendosni pikën e montimit të volumit si diçka TJETËR se /app dhe më pas në përkufizimin e volumit në tastierën Openshift, specifikoni se ku në kontejner duhet të vendoset në hartë...që më pas është /app.

12.04.2018

3

Unë kam krijuar një imazh aktivmq i cili mund të vendoset në Openshift https://hub.docker.com/r/rangareddyv/activemq-openshift

Krijoi një imazh me versionin më të fundit të activemq dhe amzn-corretto-jdk-11 si imazh bas sepse openjdk ka shumë CVE dhe alpine nuk e mbështet jdk-11

28.07.2021
Materiale të reja

Masterclass Coroutines: Kapitulli-3: Anulimi i korutinave dhe trajtimi i përjashtimeve.
Mirë se vini në udhëzuesin gjithëpërfshirës mbi Kotlin Coroutines! Në këtë seri artikujsh, unë do t'ju çoj në një udhëtim magjepsës, duke filluar nga bazat dhe gradualisht duke u thelluar në..

Faketojeni derisa ta arrini me të dhënat false
A e gjeni ndonjëherë veten duke ndërtuar një aplikacion të ri dhe keni nevojë për të dhëna testimi që duken dhe duken më realiste ose një grup i madh të dhënash për performancën e ngarkesës...

Si të përdorni kërkesën API në Python
Kërkesë API në GitHub për të marrë depot e përdoruesve duke përdorur Python. Në këtë artikull, unë shpjegoj procesin hap pas hapi për të trajtuar një kërkesë API për të marrë të dhëna nga..

Një udhëzues hap pas hapi për të zotëruar React
Në këtë artikull, do të mësoni se si të krijoni aplikacionin React, do të mësoni se si funksionon React dhe konceptet thelbësore që duhet të dini për të ndërtuar aplikacione React. Learning..

AI dhe Psikologjia — Pjesa 2
Në pjesën 2 të serisë sonë të AI dhe Psikologji ne diskutojmë se si makineritë mbledhin dhe përpunojnë të dhëna për të mësuar emocione dhe ndjenja të ndryshme në mendjen e njeriut, duke ndihmuar..

Esencialet e punës ditore të kodit tim VS
Shtesat e mia të preferuara - Git Graph 💹 Kjo shtesë është vërtet e mahnitshme, e përdor përpara se të filloj të punoj për të kontrolluar dy herë ndryshimet dhe degët më të fundit, mund të..

Pse Python? Zbulimi i fuqisë së gjithanshme të një gjiganti programues
Në peizazhin gjithnjë në zhvillim të gjuhëve të programimit, Python është shfaqur si një forcë dominuese. Rritja e tij meteorike nuk është rastësi. Joshja e Python qëndron në thjeshtësinë,..