diff options
Diffstat (limited to 'artifactbroker/packages')
-rw-r--r-- | artifactbroker/packages/docker/Dockerfile | 41 | ||||
-rw-r--r-- | artifactbroker/packages/docker/artifact-dist.sh | 43 | ||||
-rwxr-xr-x | artifactbroker/packages/docker/build_image.sh | 45 | ||||
-rw-r--r-- | artifactbroker/packages/pom.xml | 85 |
4 files changed, 214 insertions, 0 deletions
diff --git a/artifactbroker/packages/docker/Dockerfile b/artifactbroker/packages/docker/Dockerfile new file mode 100644 index 0000000..364acb9 --- /dev/null +++ b/artifactbroker/packages/docker/Dockerfile @@ -0,0 +1,41 @@ +FROM alpine:3.9 + +ARG HTTP_PROXY=${HTTP_PROXY} +ARG HTTPS_PROXY=${HTTPS_PROXY} +ARG BUILD_VERSION=${BUILD_VERSION} +ARG ARTIFACT_LOGS=/var/log/onap + +ENV http_proxy $HTTP_PROXY +ENV https_proxy $HTTPS_PROXY +ENV BUILD_VERSION ${BUILD_VERSION} +ENV ARTIFACT_LOGS ${ARTIFACT_LOGS} + +ENV ARTIFACT_HOME=/opt/app/ +ENV ARTIFACT_DISTRIBUTION_HOME=${ARTIFACT_HOME}/distribution + +EXPOSE 9014 + +RUN apk add --no-cache --update busybox-extras bash nss procps coreutils findutils grep zip unzip \ + curl wget openssh openjdk8 maven jq httpie py-pip + +RUN addgroup -S onap && \ + adduser -S --shell /bin/bash -G onap onap + +RUN mkdir -p ${ARTIFACT_DISTRIBUTION_HOME} ${ARTIFACT_LOGS} ${ARTIFACT_HOME}/etc/ssl && \ + chown -R onap:onap ${ARTIFACT_HOME} ${ARTIFACT_DISTRIBUTION_HOME} ${ARTIFACT_LOGS} + +WORKDIR ${ARTIFACT_DISTRIBUTION_HOME} +COPY ./multicloud-framework-artifactbroker-*.zip multicloud-framework-artifactbroker.zip +RUN unzip -q -o -B multicloud-framework-artifactbroker.zip && \ + rm -f multicloud-framework-artifactbroker.zip +COPY artifact-dist.sh bin/. +#RUN tar xvfz /packages/policy-distribution.tar.gz --directory ${ARTIFACT_DISTRIBUTION_HOME} +#RUN rm /packages/policy-distribution.tar.gz + +RUN chmod +x bin/*.sh && \ + cp ${ARTIFACT_DISTRIBUTION_HOME}/etc/ssl/* ${ARTIFACT_HOME}/etc/ssl && \ + chown onap:onap ${ARTIFACT_HOME}/etc/ssl/* + +USER onap +WORKDIR ${ARTIFACT_DISTRIBUTION_HOME}/bin +ENTRYPOINT [ "bash", "./artifact-dist.sh" ] diff --git a/artifactbroker/packages/docker/artifact-dist.sh b/artifactbroker/packages/docker/artifact-dist.sh new file mode 100644 index 0000000..94c1dfc --- /dev/null +++ b/artifactbroker/packages/docker/artifact-dist.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# Copyright (C) 2018 Ericsson. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= +# + +JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk/ +ARTIFACT_DISTRIBUTION_HOME=/opt/app/distribution +KEYSTORE="${ARTIFACT_HOME}/etc/ssl/policy-keystore" +KEYSTORE_PASSWD="Pol1cy_0nap" +TRUSTSTORE="${ARTIFACT_HOME}/etc/ssl/policy-truststore" +TRUSTSTORE_PASSWD="Pol1cy_0nap" + + +if [ "$#" -eq 1 ]; then + CONFIG_FILE=$1 +else + CONFIG_FILE=${CONFIG_FILE} +fi + +if [ -z "$CONFIG_FILE" ] + then + CONFIG_FILE="$ARTIFACT_DISTRIBUTION_HOME/etc/defaultConfig.json" +fi + +echo "Policy distribution config file: $CONFIG_FILE" + +$JAVA_HOME/bin/java -cp "$ARTIFACT_DISTRIBUTION_HOME/etc:$ARTIFACT_DISTRIBUTION_HOME/lib/*" -Djavax.net.ssl.keyStore="$KEYSTORE" -Djavax.net.ssl.keyStorePassword="$KEYSTORE_PASSWD" -Djavax.net.ssl.trustStore="$TRUSTSTORE" -Djavax.net.ssl.trustStorePassword="$TRUSTSTORE_PASSWD" org.onap.policy.distribution.main.startstop.Main -c $CONFIG_FILE diff --git a/artifactbroker/packages/docker/build_image.sh b/artifactbroker/packages/docker/build_image.sh new file mode 100755 index 0000000..e082e9b --- /dev/null +++ b/artifactbroker/packages/docker/build_image.sh @@ -0,0 +1,45 @@ +#!/bin/bash +# Copyright (c) 2017-2018 VMware, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +DIRNAME=`dirname $0` +DOCKER_BUILD_DIR=`cd $DIRNAME/; pwd` +echo "DOCKER_BUILD_DIR=${DOCKER_BUILD_DIR}" +cd ${DOCKER_BUILD_DIR} + +BUILD_ARGS="--no-cache" +ORG="onap" +VERSION="1.4.0-SNAPSHOT" +STAGING_VERSION="1.4.0-STAGING" +PROJECT="multicloud" +IMAGE="framework-artifactbroker" +DOCKER_REPOSITORY="nexus3.onap.org:10003" +IMAGE_NAME="${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/${IMAGE}" + +if [ $HTTP_PROXY ]; then + BUILD_ARGS+=" --build-arg HTTP_PROXY=${HTTP_PROXY}" +fi +if [ $HTTPS_PROXY ]; then + BUILD_ARGS+=" --build-arg HTTPS_PROXY=${HTTPS_PROXY}" +fi + +function build_image { + docker build ${BUILD_ARGS} -t ${IMAGE_NAME}:${VERSION} -t ${IMAGE_NAME}:latest -t ${IMAGE_NAME}:${STAGING_VERSION} . +} + +function push_image { + docker push ${IMAGE_NAME}:${VERSION} + docker push ${IMAGE_NAME}:${STAGING_VERSION} + docker push ${IMAGE_NAME}:latest +} + +build_image +push_image diff --git a/artifactbroker/packages/pom.xml b/artifactbroker/packages/pom.xml index c5d98e7..297b455 100644 --- a/artifactbroker/packages/pom.xml +++ b/artifactbroker/packages/pom.xml @@ -82,4 +82,89 @@ </plugin> </plugins> </build> + <profiles> + <profile> + <id>docker</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-resources-plugin</artifactId> + <version>3.1.0</version> + <executions> + <execution> + <id>copy-resources</id> + <phase>install</phase> + <goals> + <goal>copy-resources</goal> + </goals> + <configuration> + <overwrite>true</overwrite> + <nonFilteredFileExtensions> + <nonFilteredFileExtension>zip</nonFilteredFileExtension> + <nonFilteredFileExtension>jar</nonFilteredFileExtension> + </nonFilteredFileExtensions> + <outputDirectory>${project.basedir}/docker_target</outputDirectory> + <resources> + <resource> + <directory>${project.basedir}/docker</directory> + <filtering>true</filtering> + </resource> + <resource> + <directory>${project.basedir}/target</directory> + <filtering>true</filtering> + <includes> + <include>*.zip</include> + <include>*.jar</include> + </includes> + </resource> + </resources> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <version>1.6</version> + <executions> + <execution> + <phase>install</phase> + <inherited>false</inherited> + <configuration> + <target> + <exec executable="docker"> + <arg value="build"/> + <arg value="-t"/> + <arg value="${CONTAINER_PUSH_REGISTRY}/onap/multicloud/framework-artifactbroker:${project.version}"/> + <arg value="docker_target"/> + </exec> + <exec executable="docker"> + <arg value="tag"/> + <arg value="${CONTAINER_PUSH_REGISTRY}/onap/multicloud/framework-artifactbroker:${project.version}"/> + <arg value="${CONTAINER_PUSH_REGISTRY}/onap/multicloud/framework-artifactbroker:latest"/> + </exec> + <exec executable="docker"> + <arg value="push"/> + <arg value="${CONTAINER_PUSH_REGISTRY}/onap/multicloud/framework-artifactbroker:${project.version}"/> + </exec> + <exec executable="docker"> + <arg value="push"/> + <arg value="${CONTAINER_PUSH_REGISTRY}/onap/multicloud/framework-artifactbroker:latest"/> + </exec> + </target> + </configuration> + <goals> + <goal>run</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + <activation> + <activeByDefault>false</activeByDefault> + </activation> + </profile> + </profiles> </project> |