KARAF / karaf star
2023-01-23
Open
#21 RedHat 8 OpenJDK 11 Docker Image 기반 Karaf Docker Image 만들기 star
2023-01-23 Open
Tasks

Karaf 4.4.3 Docker Image 만들기#

docker build --no-cache \
--build-arg KARAF_PASSWORD=test1234 \
--build-arg NEXUS_USERID=admin \
--build-arg NEXUS_PASSWORD=admin1234 \
--build-arg NEXUS_HOST_USERID=hostuser \
--build-arg NEXUS_HOST_IPADDRESS=host.docker.internal \
--build-arg NEXUS_HOST_PORT=8083 \
--build-arg NEXUS_SSH_PASSWORD=testTest1234** \
-t ssemiya-redhat8-jdk11-karaf4:2023.0119 .
  • Dockerfile
FROM ssemiya-redhat8-jdk11:2023.0119

ARG KARAF_PASSWORD
ARG NEXUS_USERID
ARG NEXUS_PASSWORD

ARG NEXUS_HOST_USERID
ARG NEXUS_HOST_IPADDRESS
ARG NEXUS_HOST_PORT

USER root
RUN yum install -y wget
RUN yum install -y openssh-clients

# make directory /App, /Data, /Log
RUN mkdir -p /App/karaf
RUN chmod 755 /App/karaf
RUN chown karaf:karaf /App/karaf

USER karaf

# ARM
# ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.18.0.10-2.el8_7.aarch64

# Intel
ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.18.0.10-2.el8_7.x86_64

ENV KARAF_VERSION="RedHat 8 OpenJDK 11 Karaf 4.4.3"


# Install KARAF 4.4.3
RUN wget https://dlcdn.apache.org/karaf/4.4.3/apache-karaf-4.4.3.tar.gz -O /App/down/apache-karaf-4.4.3.tar.gz

# RUN cd /App/down
WORKDIR /App/down
RUN tar zxvf apache-karaf-4.4.3.tar.gz
RUN cp -Rv /App/down/apache-karaf-4.4.3/* /App/karaf
RUN chmod +x /App/karaf/bin/start
RUN rm -rf /App/down/*

RUN echo "karaf = $KARAF_PASSWORD,_g_:admingroup" >> /App/karaf/etc/users.properties
RUN echo "_g_\:admingroup = group,admin,manager,viewer,systembundles,ssh" >> /App/karaf/etc/users.properties

# Install features
RUN printf "\
\nfeature:repo-add camel 3.1.0\
\nfeature:install aries-blueprint\
\nfeature:install jdbc\
\nfeature:install jndi\
\nfeature:install scr\
\nfeature:install http\
\nfeature:install pax-web-jetty-http2\
\nfeature:install http-whiteboard\
\nfeature:install jackson-jaxrs\
\nfeature:install transaction-api\
\nfeature:install transaction\
\nfeature:install jpa\
\nfeature:install subsystems\
\nfeature:install war\
\nfeature:install pax-jdbc-pool-dbcp2\
\nfeature:install pax-jdbc-pool-aries\
\nfeature:install pax-jdbc-oracle\
\nfeature:install pax-cdi\
\nfeature:install hibernate\
\nfeature:install hibernate-envers\
\nfeature:install jasypt-encryption\
\nfeature:install webconsole\
\nfeature:install jolokia\
\nfeature:install blueprint-web\
\nfeature:install camel\
\nfeature:install camel-http\
\nfeature:install camel-netty\
\nfeature:install camel-servlet\
\nfeature:install camel-jackson\
\nfeature:install camel-jacksonxml\
\nfeature:install camel-swagger-java\
\nfeature:install camel-gson\
\nfeature:install camel-stream\
\nfeature:install camel-sql\
\nfeature:install camel-bindy\
\n" | /App/karaf/bin/karaf

RUN ssh-keygen -A

RUN mkdir -p /home/karaf/.ssh
RUN printf "Host * \
\nProtocol 2\
\nServerAliveInterval 60\
\n" > /home/karaf/.ssh/conf
RUN echo $NEXUS_SSH_PASSWORD >> /home/karaf/.ssh/nexuspass.txt

RUN mkdir -p /home/karaf/.m2

RUN printf "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\
\n<settings xmlns=\"http://maven.apache.org/SETTINGS/1.0.0\"\
\n          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\
\n          xsi:schemaLocation=\"http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd\">\
\n    <pluginGroups>\
\n    </pluginGroups>\
\n    <proxies>\
\n    </proxies>\
\n    <servers>\
\n        <server>\
\n          <id>nexus</id>\
\n          <username>$NEXUS_USERID</username>\
\n          <password>$NEXUS_PASSWORD</password>\
\n        </server>\
\n        <server>\
\n          <id>central</id>\
\n          <username>$NEXUS_USERID</username>\
\n          <password>$NEXUS_PASSWORD</password>\
\n        </server>\
\n    </servers>\
\n    <mirrors>\
\n        <mirror>\
\n          <id>central</id>\
\n          <mirrorOf>*</mirrorOf>\
\n          <name>central</name>\
\n          <url>http://localhost:18083/repository/maven-public/</url>\
\n        </mirror>\
\n    </mirrors>\
\n    <profiles>\
\n        <profile>\
\n          <id>nexus</id>\
\n          <activation>\
\n            <jdk>1.8</jdk>\
\n          </activation>\
\n          <repositories>\
\n            <repository>\
\n              <id>nexuss</id>\
\n              <name>Local repository</name>\
\n              <url>http://localhost:18083/repository/maven-public/</url>\
\n              <layout>default</layout>\
\n               <releases>\
\n                    <enabled>true</enabled>\
\n                    <updatePolicy>always</updatePolicy>\
\n                </releases>\
\n                <snapshots>\
\n                    <enabled>true</enabled>\
\n                    <updatePolicy>daily</updatePolicy>\
\n                </snapshots>\
\n            </repository>\
\n          </repositories>\
\n        </profile>\
\n    </profiles>\
\n</settings>\
\n" > /home/karaf/.m2/settings.xml


USER karaf
RUN mv /App/karaf/etc/org.ops4j.pax.url.mvn.cfg /App/karaf/etc/org.ops4j.pax.url.mvn.cfg.old

RUN printf "\
\norg.ops4j.pax.url.mvn.certificateCheck=true\
\norg.ops4j.pax.url.mvn.settings=/home/karaf/.m2/settings.xml\
\norg.ops4j.pax.url.mvn.useFallbackRepositories=false\
\n\
\norg.ops4j.pax.url.mvn.defaultRepositories=\${karaf.home.uri}\${karaf.default.repository}@id=system.repository@snapshots,\${karaf.data.uri}kar@id=kar.repository@multi@snapshots,\${karaf.base.uri}\${karaf.default.repository}@id=child.system.repository@snapshots\
\norg.ops4j.pax.url.mvn.repositories=http://$NEXUS_USERID:$NEXUS_PASSWORD@localhost:18083/repository/maven-public@id=nexus\
\n\
\norg.ops4j.pax.url.mvn.globalUpdatePolicy = always\
\n\
\norg.ops4j.pax.url.mvn.timeout = 5000\
\norg.ops4j.pax.url.mvn.socket.connectionTimeout = 5000\
\norg.ops4j.pax.url.mvn.socket.readTimeout = 30000\
\norg.ops4j.pax.url.mvn.socket.keepAlive = false\
\norg.ops4j.pax.url.mvn.socket.linger = -1\
\norg.ops4j.pax.url.mvn.socket.reuseAddress = false\
\norg.ops4j.pax.url.mvn.socket.tcpNoDelay = true\
\norg.ops4j.pax.url.mvn.connection.bufferSize = 8192\
\norg.ops4j.pax.url.mvn.connection.retryCount = 3\
\n" > /App/karaf/etc/org.ops4j.pax.url.mvn.cfg

RUN sshpass -f /home/karaf/.ssh/nexuspass.txt ssh -o StrictHostKeyChecking=no -f -N -T -M $NEXUS_HOST_USERID@$NEXUS_HOST_IPADDRESS -L:18083:localhost:$NEXUS_HOST_PORT;printf "\
\ninstall -s mvn:com.fasterxml.jackson.core/jackson-core/2.10.2\
\ninstall -s mvn:com.fasterxml.jackson.core/jackson-annotations/2.10.2\
\ninstall -s mvn:com.fasterxml.jackson.core/jackson-databind/2.10.2\
\ninstall -s mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/2.10.2\
\ninstall -s mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/2.10.2\
\ninstall -s mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/2.10.2\
\ninstall -s mvn:com.googlecode.json-simple/json-simple/1.1.1\
\ninstall -s mvn:commons-collections/commons-collections/3.2.2\
\ninstall -s mvn:commons-lang/commons-lang/2.6\
\ninstall -s mvn:commons-io/commons-io/1.4\
\ninstall -s mvn:commons-codec/commons-codec/1.9\
\ninstall -s wrap:mvn:com.github.stephenc.jcip/jcip-annotations/1.0-1\
\ninstall -s wrap:mvn:org.eclipse.ecf/org.objectweb.asm/5.0.1.v201404251740\
\ninstall -s wrap:mvn:xalan/xalan/2.7.2\
\ninstall -s wrap:mvn:io.jsonwebtoken/jjwt-api/0.10.5\
\ninstall -s wrap:mvn:io.jsonwebtoken/jjwt-impl/0.10.5\
\ninstall -s wrap:mvn:io.jsonwebtoken/jjwt-jackson/0.10.5\
\ninstall -s wrap:mvn:com.auth0/java-jwt/3.18.2\
\ninstall -s wrap:mvn:com.google.code.gson/gson/2.8.0\
\ninstall -s mvn:com.google.guava/guava/21.0\
\ninstall -s mvn:org.javassist/javassist/3.22.0-CR2\
\ninstall -s wrap:mvn:org.apache.httpcomponents/httpclient/4.5.13\
\ninstall -s wrap:mvn:commons-httpclient/commons-httpclient/3.1\
\ninstall -s mvn:com.strategicgains/DateAdapterJ/1.1.5-SNAPSHOT\
\ninstall -s mvn:javax.ws.rs/javax.ws.rs-api/2.1\
\ninstall -s wrap:mvn:com.oracle.ojdbc8/ojdbc8/12.2.0.1\
\ninstall -s mvn:org.ow2.asm/asm-all/5.2\
\ninstall -s wrap:mvn:net.minidev/accessors-smart/1.2\
\ninstall -s wrap:mvn:net.minidev/json-smart/2.3\
\ninstall -s wrap:mvn:com.nimbusds/nimbus-jose-jwt/7.8\
\ninstall -s mvn:javax.xml.soap/javax.xml.soap-api/1.4.0\
\nstart-level wrap:mvn:org.apache.httpcomponents/httpclient/4.5.13 75\
\nstart-level wrap:mvn:commons-httpclient/commons-httpclient/3.1 75\
\nstart-level DateAdapterJ 75\
\nstart-level javax.xml.soap-api 75\
\n" | /App/karaf/bin/karaf

RUN printf "#!/bin/bash\
\nsudo service ssh start\
\nsshpass -f /home/karaf/.ssh/nexuspass.txt ssh -f -N -T -M $NEXUS_HOST_USERID@$NEXUS_HOST_IPADDRESS -L:18083:localhost:$NEXUS_HOST_PORT\
\nkaraf run\
\n" > /home/karaf/startup_server.sh

RUN chmod 755 /home/karaf/startup_server.sh

ENV KARAF_HOME /App/karaf
ENV KARAF_EXEC exec
ENV PATH $PATH:$KARAF_HOME/bin

EXPOSE 22 8101 1099 44444 8181 9999

ENTRYPOINT ["/home/karaf/startup_server.sh"]
Issue Sharer
Comment 1

  • Added KKoZZi added
    redhat
    label 2023-01-23
    • Markdown help
    • Header
    • Text Style
    • Link
    • List
    • Checklist
    • Image
    • Blockquote
    • Code
    • Table
    • Short Link
    • Markdown Input
      Markdown Output
      # This is an H1
      ## This is an H2
      ### This is an H3
      
      # This is an H1 ## This is an H2 ### This is an H3
    • Markdown Input
      Markdown Output
      *This is an italic*
      **This is an bold**
      ~~This is an strike~~
      
      *This is an italic* **This is an bold** ~~This is an strike~~
    • Markdown Input
      Markdown Output
      - Red
          1. White
          2. Blue
      - Green.
      
      - Red 1. White 2. Blue - Green
    • Markdown Input
      Markdown Output
      - [ ] Todos
          - [x] To do A
          - [ ] To do B
          - [ ] To do C
                          
      • Todos
        • To do A
        • To do B
        • To do C
    • Markdown Input
      Markdown Output
      ![title](https://repo.yona.io/assets/images/ico-like-small.png "Yobi")
      
      ![title](/assets/images/ico-like-small.png "Yobi")
    • Markdown Input
      Markdown Output
      > Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
      >
      > Aenean commodo ligula eget dolor.
      
      > Lorem ipsum dolor sit amet, consectetuer adipiscing elit. > > Aenean commodo ligula eget dolor.
    • Markdown Input
      Markdown Output
      `function test() {console.log("hello world");}`
      
      ```javascript
      function test() {
        console.log("hello world");
      }
      ```
      
      `function test() {console.log("hello world");}` ```javascript function test() { console.log("hello world"); } ```
    • Markdown Input
      Markdown Output
      | Default      | Align center | Align right |
      | ------------ | :----------: | ------: |
      | Carrot       | Red          | 1,000   |
      | Banana       | Yellow       | 32,000  |
      
      | Default | Align center | Align right | | ------------ | :----------: | ------: | | Carrot | Red | 1,000 | | Banana | Yellow | 32,000 | Also, you can copy & paste table from excel sheet
    Notification receivers
    Drag & Drop files here to upload.
    Tasks

    컨테이너 생성#

    # docker stop ssemiya-karaf4
    # docker rm ssemiya-karaf4
    
    docker run -d -t --name ssemiya-karaf4 -p 48122:22 -p 8181:8181 semiya-redhat8-jdk11-karaf4:2023.0119
    docker exec -it ssemiya-karaf4 bash
    
    Reply
Add a comment