summaryrefslogtreecommitdiffstats
path: root/opendaylight/chlorine/chlorine-alpine
diff options
context:
space:
mode:
authorDan Timoney <dtimoney@att.com>2023-01-03 07:05:53 -0500
committerDan Timoney <dtimoney@att.com>2023-01-03 07:06:04 -0500
commitd3ef2d11a5521a4dcb765f5d4a112f10d7bf3051 (patch)
tree2029d531848fb0abc5c2bdca9f00ae7515b5c8b5 /opendaylight/chlorine/chlorine-alpine
parente5043d4e249a672540f773d8758e78e7ae404984 (diff)
Create base Chlorine docker image
Create base docker image for ODL Chlorine release. Also, remove code to create Phosphorus docker image, which is not needed in London ONAP release. Issue-ID: CCSDK-3829 Signed-off-by: Dan Timoney <dtimoney@att.com> Change-Id: I026f68bebfd3063d0ecb69c7b9cd7bf3e3a79d13
Diffstat (limited to 'opendaylight/chlorine/chlorine-alpine')
-rw-r--r--opendaylight/chlorine/chlorine-alpine/pom.xml178
-rw-r--r--opendaylight/chlorine/chlorine-alpine/src/main/docker/Dockerfile53
2 files changed, 231 insertions, 0 deletions
diff --git a/opendaylight/chlorine/chlorine-alpine/pom.xml b/opendaylight/chlorine/chlorine-alpine/pom.xml
new file mode 100644
index 00000000..b490fcd9
--- /dev/null
+++ b/opendaylight/chlorine/chlorine-alpine/pom.xml
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.distribution</groupId>
+ <artifactId>distribution-odl-chlorine</artifactId>
+ <version>1.5.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>distribution-odl-chlorine-docker</artifactId>
+ <packaging>pom</packaging>
+
+ <name>ccsdk-distribution :: opendaylight :: chlorine :: docker</name>
+ <description>Creates OpenDaylight container</description>
+ <organization>
+ <name>ONAP</name>
+ </organization>
+
+ <properties>
+ <image.name>onap/ccsdk-odl-chlorine-alpine-image</image.name>
+ <odl.karaf.artifactId>onap-karaf</odl.karaf.artifactId>
+ <odl.shiro.version>0.15.5</odl.shiro.version>
+ </properties>
+
+ <build>
+ <plugins>
+
+ <plugin>
+ <groupId>org.codehaus.groovy.maven</groupId>
+ <artifactId>gmaven-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <phase>validate</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <source>${basedir}/../../../src/main/scripts/TagVersion.groovy</source>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>3.0.0</version>
+ <executions>
+ <execution>
+ <id>get-odl-distribution</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>copy</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.opendaylight.integration</groupId>
+ <artifactId>${odl.karaf.artifactId}</artifactId>
+ <version>${ccsdk.opendaylight.version}</version>
+ <type>tar.gz</type>
+ <overWrite>true</overWrite>
+ <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
+ </artifactItem>
+ </artifactItems>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-with-alternalte-repo-2</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>copy</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>com.highstreet-technologies.aaa</groupId>
+ <artifactId>aaa-authn-api</artifactId>
+ <version>${odl.shiro.version}</version>
+ <outputDirectory>${project.build.directory}/docker-stage/system/org/opendaylight/aaa/aaa-authn-api/${odl.shiro.version}</outputDirectory>
+ <destFileName>aaa-authn-api-${odl.shiro.version}.jar</destFileName>
+ <excludes>*</excludes>
+ </artifactItem>
+ </artifactItems>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.6</version>
+ <executions>
+ <execution>
+ <id>copy-dockerfile</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals><!-- here the phase you need -->
+ <phase>validate</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/docker</directory>
+ <includes>
+ <include>Dockerfile</include>
+ </includes>
+ <filtering>true</filtering>
+ </resource>
+ <resource>
+ <directory>src/main/odlscripts</directory>
+ <includes>
+ <include>*</include>
+ </includes>
+ <filtering>false</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>docker</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>io.fabric8</groupId>
+ <artifactId>docker-maven-plugin</artifactId>
+ <version>0.34.0</version>
+ <inherited>false</inherited>
+ <configuration>
+ <images>
+ <image>
+ <name>${image.name}</name>
+ <build>
+ <cleanup>try</cleanup>
+ <noCache>true</noCache>
+ <contextDir>${basedir}/target/docker-stage</contextDir>
+ <dockerFile>Dockerfile</dockerFile>
+ <tags>
+ <tag>${project.docker.latestminortag.version}</tag>
+ <tag>${project.docker.latestfulltag.version}</tag>
+ <tag>${project.docker.latesttagtimestamp.version}</tag>
+ </tags>
+ </build>
+ </image>
+ </images>
+ <verbose>${docker.verbose}</verbose>
+ <skipPush>${docker.skip.push}</skipPush>
+ </configuration>
+ <executions>
+ <execution>
+ <id>build-push-images</id>
+ <goals>
+ <goal>build</goal>
+ <goal>push</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
diff --git a/opendaylight/chlorine/chlorine-alpine/src/main/docker/Dockerfile b/opendaylight/chlorine/chlorine-alpine/src/main/docker/Dockerfile
new file mode 100644
index 00000000..15b17d80
--- /dev/null
+++ b/opendaylight/chlorine/chlorine-alpine/src/main/docker/Dockerfile
@@ -0,0 +1,53 @@
+# Prepare stage for multistage image build
+## START OF STAGE0 ##
+FROM onap/ccsdk-alpine-j11-image:${project.docker.latestfulltag.version} AS stage0
+USER root
+
+ENV ODL_HOME /opt/opendaylight/current
+
+# copy the opendaylight tar and expand
+COPY ${odl.karaf.artifactId}-${ccsdk.opendaylight.version}.tar.gz /tmp/
+RUN mkdir -p /opt/odl \
+ && tar xzf /tmp/${odl.karaf.artifactId}-${ccsdk.opendaylight.version}.tar.gz --directory /opt/odl \
+ && rm -rf /tmp/${odl.karaf.artifactId}-${ccsdk.opendaylight.version}.tar.gz \
+ && mv /opt/odl/${odl.karaf.artifactId}-${ccsdk.opendaylight.version} /opt/opendaylight \
+ && ln -s /opt/opendaylight /opt/opendaylight/${odl.karaf.artifactId}-${ccsdk.opendaylight.version} \
+ && ln -s /opt/opendaylight /opt/opendaylight/current
+
+# Enable wheel and create a group and user
+RUN sed -i -e 's/# %wheel ALL=(ALL) NOPASSWD: ALL/%wheel ALL=(ALL) NOPASSWD: ALL/g' /etc/sudoers \
+ && addgroup -S odl \
+ && adduser -S odl -G odl \
+ && addgroup odl wheel
+
+# Patch some opendaylight artifacts
+COPY system $ODL_HOME/system
+
+# Add missing scripts see SDNC-1056
+#COPY configure_cluster.sh configure-cluster-ipdetect.sh custom_shard_config.txt set_persistence.sh $ODL_HOME/bin/
+#RUN chmod 755 $ODL_HOME/bin/configure_cluster.sh $ODL_HOME/bin/configure-cluster-ipdetect.sh $ODL_HOME/bin/set_persistence.sh $ODL_HOME/bin/custom_shard_config.txt
+
+
+# Changing ownership and permission of /opt
+RUN chown -R odl:odl /opt && chmod -R 755 /opt
+
+## END OF STAGE0 ##
+
+#################################################
+
+## This will create actual image
+FROM scratch
+MAINTAINER CCSDK Team (onap-ccsdk@lists.onap.org)
+USER root
+
+ENV JAVA_HOME=/opt/java/openjdk \
+ PATH=$PATH:/opt/java/openjdk/bin \
+ ODL_HOME=/opt/opendaylight/current
+
+# Copy Everything from stage0
+COPY --from=stage0 / /
+
+USER odl
+EXPOSE 8181
+WORKDIR $ODL_HOME
+# ENTRYPOINT exec /opt/opendaylight/bin/karaf