...
- validate
- plugin: org.codehaus.groovy.maven : gmavin-plugin plugin (described above)
- set the version of the ODLSLI docker image to be used in NEXUS_DOCKER_REPO
- Note: the name of the image is set in the property 'image.name' in the pom.xml properties section.
- plugin: maven-resources-plugin
- goal: copy-resources
- id: copy-dockerfile
- copy Docker file
- from ./src/main/docker/
- to ./target/docker-stage/
- id: copy-scripts
- copy all of the scripts (*.sh files)
- from ./src/main/scripts/
- to ./target/docker-stage/opt/onap/ccsdk/bin/
- id: copy-odl-resources
- copy the files:
idmlight.db.mv.db
org.ops4j.pax.logging.cfg
install_ccsdk.yml
ansible-sources.list
- from ./src/main/resources/
- to ./target/docker-stage/
- copy the files:
- id: copy-config
- copy the file org.ops4j.pax.logging.cfg
- from ./src/main/resources/
- to ./target/docker-stage/
- id: copy-data
- copy all of the MySQL databases (*.dump)
- from ./src/main/resources/
- to ./target/docker-stage/opt/onap/ccsdk/data/
- id: copy-properties
- copy all of the properties files (*.properties)
- from ./src/main/properties/
- to ./target/docker-stage/opt/onap/ccsdk/data/properties/
- id: copy-keystores
- copy all *.jks files
- from ./src/main/stores/
- to ./target/docker-stage/opt/onap/ccsdk/data/stores/
- id: copy-dockerfile
- goal: copy-resources
- plugin: org.codehaus.groovy.maven : gmavin-plugin plugin (described above)
- generate-sources
- plugin: org.apache.maven.plugins : maven-dependency-plugin
- goal: unpack-dependencies
- id: "unpack features"
- unzip all of the dependencies
- from a local or remote Maven repository
- to ./target/docker-stage
- Note: all of the zipped features are rooted at the "system" folder, so they will be unzipped in into the proper structure for the OpenDaylight feature repository.
- id: "unpack features"
- goal: unpack
- id: "unpack dgs"
- Unzip the zipped artifact org.onap.ccsdk.distribution : platform-logic-installer : ${project.version}
- from a local or remote Maven repository
- to .target/docker-stage/opt/onap/ccsdk/
- Note: this unzips the artifact into the home directory of user ccsdk in the docker container
- id: "unpack dgs"
- goal: unpack-dependencies
- plugin: org.apache.maven.plugins : maven-dependency-plugin
- process-sources
- plugin: org.codehaus.mojo : exec-maven-plugin
- goal: exec
- id: "change shell permissions"
- This executes the following command in the local computer:
- find ./target/docker-stage/opt/onap/ccsdk -name "*.sh" -exec chmod +x {} \;
- I.e., make all of the bash scripts in the ccsdk home directory executable.
- id: "change shell permissions"
- goal: exec
- plugin: org.codehaus.mojo : exec-maven-plugin
ODLSLI pom.xml: Docker Profile
And then, within the The "docker" profile , there are two phases to package and push defines an additional phase in which the docker image is built and deployed to NEXUS_DOCKER_REPO using the image name ${image.name}:${project.docker.latesttag.version}, which currently translates to "onap/ccsdk-odlsli-image:0.3-STAGING-latest."
We now see how the karaf features for OpenDaylight are structured so they can be installed and OpenDaylight launched. The next step is to understand how the installation folders in CCSDK_HOME/features are created. A good example is the 'sliapi' feature that is part of the CCSDK_CORE_FEATURES. In the gerrit repository, this code appears in ccsdk/sli/core/sliapi.
...