| FROM onosproject/onos:1.8 as build |
| MAINTAINER Open Networking Foundation <info@opennetworking.org> |
| |
| # Install and configure build tools |
| ENV JAVA_OPTS="${JAVA_OPTS:--DenableOFTLS=true -Djavax.net.ssl.keyStore=/home/sdn/wiki/onos.jks -Djavax.net.ssl.keyStorePassword=222222 -Djavax.net.ssl.trustStore=/home/sdn/wiki/onos.jks -Djavax.net.ssl.trustStorePassword=222222}" |
| |
| RUN apt-get update && apt-get install -y git maven unzip curl python |
| RUN curl -sSL http://commondatastorage.googleapis.com/git-repo-downloads/repo -o /bin/repo && chmod 755 /bin/repo |
| |
| # The ENV settings for ONOS, KARAF_VERSION, KARAF_ROOT, KARAF_M2, and APPS_ROOT |
| # must be replicated below to the final image as they are shared between stages |
| ENV ONOS=/root/onos |
| ENV APPS_ROOT=${ONOS}/apps |
| ENV KARAF_VERSION=3.0.5 |
| ENV KARAF_ROOT=${ONOS}/apache-karaf-${KARAF_VERSION} |
| ENV KARAF_M2=${KARAF_ROOT}/system |
| ENV MANIFEST_BRANCH=master |
| ENV BUILD_ROOT=/build |
| ENV APP_INSTALL_ROOT=/expand |
| |
| # Build the applications |
| RUN mkdir -p ${BUILD_ROOT} |
| WORKDIR ${BUILD_ROOT} |
| RUN repo init -u http://gerrit.opencord.org/manifest -b ${MANIFEST_BRANCH} -g onos && repo sync |
| WORKDIR ${BUILD_ROOT}/onos-apps/apps |
| RUN mvn -DskipTests=true clean install |
| |
| # Specify application versions to install |
| ENV AAA_VERSION=1.2.0-SNAPSHOT \ |
| CONFIG_VERSION=1.2.0-SNAPSHOT \ |
| IGMP_VERSION=1.2.0-SNAPSHOT \ |
| IGMP_PROXY_VERSION=1.0.0-SNAPSHOT \ |
| MCAST_VERSION=1.2.0-SNAPSHOT \ |
| OLT_VERSION=1.2.0-SNAPSHOT \ |
| SADIS_VERSION=1.0.0-SNAPSHOT \ |
| VTN_VERSION=1.2.0-SNAPSHOT \ |
| L2_DHCP_RELAY_VERSION=1.0.0-SNAPSHOT |
| |
| ENV APPS="aaa-${AAA_VERSION} \ |
| cord-config-${CONFIG_VERSION} \ |
| igmp-${IGMP_VERSION} \ |
| mcast-${MCAST_VERSION} \ |
| olt-app-${OLT_VERSION} \ |
| sadis-app-${SADIS_VERSION} \ |
| vtn-${VTN_VERSION} \ |
| aaa-${AAA_VERSION} \ |
| onos-app-igmpproxy-${IGMP_PROXY_VERSION} \ |
| dhcpl2relay-${L2_DHCP_RELAY_VERSION}" |
| |
| # Install the applications |
| COPY config/app-install.sh . |
| RUN chmod 755 ./app-install.sh && ./app-install.sh |
| |
| # Create the final image coping over the installed applications from the build stage |
| FROM onosproject/onos:1.8 |
| |
| ENV ONOS=/root/onos |
| ENV KARAF_VERSION=3.0.5 |
| ENV KARAF_ROOT=${ONOS}/apache-karaf-${KARAF_VERSION} |
| ENV KARAF_M2=${KARAF_ROOT}/system |
| ENV APPS_ROOT=${ONOS}/apps |
| |
| COPY --from=build ${KARAF_M2}/ ${KARAF_M2}/ |
| RUN echo "${KARAF_M2} ${APPS_ROOT}" |
| COPY --from=build ${APPS_ROOT}/ ${APPS_ROOT}/ |
| COPY config/netcfg.json $KARAF_ROOT/../config/network-cfg.json |
| |
| RUN touch $ONOS/apps/org.onosproject.netcfghostprovider/active |
| RUN touch $ONOS/apps/org.onosproject.netcfglinksprovider/active |
| RUN touch $ONOS/apps/org.onosproject.openflow-base/active |
| |
| # Create ONOS Key Directory |
| RUN mkdir -p /home/sdn/wiki |
| COPY onos_cfg/ /home/sdn/wiki |
| |