blob: 82027672a974ce0d3810bd5b41e69daa5db1eeab [file] [log] [blame]
David K. Bainbridgee0982542017-08-22 10:58:49 -07001FROM sgrio/java-oracle:jdk_8 as build
alshabib9fbb2232016-12-23 00:40:08 -08002
David K. Bainbridge9f2ec3c2017-08-10 09:13:18 -07003# Install and configure build tools
schowdhurycbbe3272017-07-03 17:12:35 -07004ENV 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}"
5
David K. Bainbridgee0982542017-08-22 10:58:49 -07006RUN apt-get update && apt-get install -y git unzip maven curl python
David K. Bainbridge9f2ec3c2017-08-10 09:13:18 -07007RUN curl -sSL http://commondatastorage.googleapis.com/git-repo-downloads/repo -o /bin/repo && chmod 755 /bin/repo
alshabib7db13562017-01-09 21:21:34 -08008
David K. Bainbridge9f2ec3c2017-08-10 09:13:18 -07009# The ENV settings for ONOS, KARAF_VERSION, KARAF_ROOT, KARAF_M2, and APPS_ROOT
10# must be replicated below to the final image as they are shared between stages
11ENV ONOS=/root/onos
12ENV APPS_ROOT=${ONOS}/apps
David K. Bainbridge6c0dc882017-08-17 09:57:10 -070013ENV KARAF_VERSION=3.0.8
David K. Bainbridge9f2ec3c2017-08-10 09:13:18 -070014ENV KARAF_ROOT=${ONOS}/apache-karaf-${KARAF_VERSION}
15ENV KARAF_M2=${KARAF_ROOT}/system
16ENV MANIFEST_BRANCH=master
17ENV BUILD_ROOT=/build
18ENV APP_INSTALL_ROOT=/expand
alshabib7db13562017-01-09 21:21:34 -080019
David K. Bainbridge9f2ec3c2017-08-10 09:13:18 -070020# Build the applications
21RUN mkdir -p ${BUILD_ROOT}
22WORKDIR ${BUILD_ROOT}
23RUN repo init -u http://gerrit.opencord.org/manifest -b ${MANIFEST_BRANCH} -g onos && repo sync
24WORKDIR ${BUILD_ROOT}/onos-apps/apps
25RUN mvn -DskipTests=true clean install
26
David K. Bainbridgee0982542017-08-22 10:58:49 -070027FROM onosproject/onos:1.10.3 as integration
28MAINTAINER Open Networking Foundation <info@opennetworking.org>
29
30# The ENV settings for ONOS, KARAF_VERSION, KARAF_ROOT, KARAF_M2, and APPS_ROOT
31# must be replicated below to the final image as they are shared between stages
32ENV ONOS=/root/onos
33ENV APPS_ROOT=${ONOS}/apps
34ENV KARAF_VERSION=3.0.8
35ENV KARAF_ROOT=${ONOS}/apache-karaf-${KARAF_VERSION}
36ENV KARAF_M2=${KARAF_ROOT}/system
37ENV MANIFEST_BRANCH=master
38ENV BUILD_ROOT=/build
39ENV APP_INSTALL_ROOT=/expand
40
41copy --from=build /build /build
42
David K. Bainbridge9f2ec3c2017-08-10 09:13:18 -070043# Specify application versions to install
David K. Bainbridge6c0dc882017-08-17 09:57:10 -070044ENV AAA_VERSION=1.3.0-SNAPSHOT \
45 CONFIG_VERSION=1.3.0-SNAPSHOT \
46 IGMP_VERSION=1.3.0-SNAPSHOT \
47 IGMP_PROXY_VERSION=1.1.0-SNAPSHOT \
48 MCAST_VERSION=1.3.0-SNAPSHOT \
49 OLT_VERSION=1.3.0-SNAPSHOT \
50 SADIS_VERSION=1.1.0-SNAPSHOT \
51 VTN_VERSION=1.3.0-SNAPSHOT \
52 L2_DHCP_RELAY_VERSION=1.1.0-SNAPSHOT
David K. Bainbridge9f2ec3c2017-08-10 09:13:18 -070053
54ENV APPS="aaa-${AAA_VERSION} \
55 cord-config-${CONFIG_VERSION} \
56 igmp-${IGMP_VERSION} \
57 mcast-${MCAST_VERSION} \
58 olt-app-${OLT_VERSION} \
59 sadis-app-${SADIS_VERSION} \
60 vtn-${VTN_VERSION} \
61 aaa-${AAA_VERSION} \
62 onos-app-igmpproxy-${IGMP_PROXY_VERSION} \
63 dhcpl2relay-${L2_DHCP_RELAY_VERSION}"
64
65# Install the applications
alshabib7db13562017-01-09 21:21:34 -080066COPY config/app-install.sh .
David K. Bainbridgef87a5c82017-08-11 11:04:57 -070067RUN chmod 755 ./app-install.sh
68RUN ./app-install.sh
alshabib7db13562017-01-09 21:21:34 -080069
David K. Bainbridge9f2ec3c2017-08-10 09:13:18 -070070# Create the final image coping over the installed applications from the build stage
David K. Bainbridge6c0dc882017-08-17 09:57:10 -070071FROM onosproject/onos:1.10.3
alshabib9fbb2232016-12-23 00:40:08 -080072
David K. Bainbridge138d5d62017-08-14 14:20:11 -070073# Install Key Store Options
74ENV 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}"
75
David K. Bainbridge9f2ec3c2017-08-10 09:13:18 -070076ENV ONOS=/root/onos
David K. Bainbridge6c0dc882017-08-17 09:57:10 -070077ENV KARAF_VERSION=3.0.8
David K. Bainbridge9f2ec3c2017-08-10 09:13:18 -070078ENV KARAF_ROOT=${ONOS}/apache-karaf-${KARAF_VERSION}
79ENV KARAF_M2=${KARAF_ROOT}/system
80ENV APPS_ROOT=${ONOS}/apps
Zsolt Haraszti3578a1c2017-01-10 15:29:02 -080081
David K. Bainbridgee0982542017-08-22 10:58:49 -070082COPY --from=integration ${KARAF_M2}/ ${KARAF_M2}/
David K. Bainbridge9f2ec3c2017-08-10 09:13:18 -070083RUN echo "${KARAF_M2} ${APPS_ROOT}"
David K. Bainbridgee0982542017-08-22 10:58:49 -070084COPY --from=integration ${APPS_ROOT}/ ${APPS_ROOT}/
alshabib9fbb2232016-12-23 00:40:08 -080085COPY config/netcfg.json $KARAF_ROOT/../config/network-cfg.json
schowdhurycbbe3272017-07-03 17:12:35 -070086
David K. Bainbridge138d5d62017-08-14 14:20:11 -070087RUN touch $ONOS/apps/org.onosproject.hostprovider/active
David K. Bainbridge9f2ec3c2017-08-10 09:13:18 -070088RUN touch $ONOS/apps/org.onosproject.openflow-base/active
89
schowdhurycbbe3272017-07-03 17:12:35 -070090# Create ONOS Key Directory
91RUN mkdir -p /home/sdn/wiki
92COPY onos_cfg/ /home/sdn/wiki
David K. Bainbridge9f2ec3c2017-08-10 09:13:18 -070093