chown on /opt isn't enough as files/directory permissions needs change so that onap user can access to execute
Even if chown onap:onap was done, it was failing to create/run script due to permission issues
Adding noCache to docker-maven-plugin so that it won't pick cached layers
Issue-ID: CCSDK-3224
Signed-off-by: Singal, Kapil (ks220y) <ks220y@att.com>
Change-Id: Idf56465eff6fa42b523bccfca56f84e93496a8d2
+# Prepare stage for multistage image build
+## START OF stage0 ##
# Building client html and js files
-FROM alpine:3.8 as builder
+FROM alpine:3.8 AS stage0
+WORKDIR /opt/cds-ui/client/
RUN apk add --no-cache npm
-WORKDIR /opt/cds-ui/client/
-
COPY client/package.json /opt/cds-ui/client/
-
RUN npm install
COPY client /opt/cds-ui/client/
-
RUN npm run build
+## END OF STAGE0 ##
-# Building and creating server
-FROM alpine:3.8
+##############################################
+## START OF stage1 ##
+# Building and creating server
+FROM alpine:3.8 AS stage1
WORKDIR /opt/cds-ui/
RUN apk add --no-cache npm
COPY server/package.json /opt/cds-ui/
-
RUN npm install
COPY server /opt/cds-ui/
-COPY --from=builder /opt/cds-ui/server/public /opt/cds-ui/public
-
RUN npm run build
-EXPOSE 3000
+## END OF STAGE1 ##
+
+##############################################
+
+## This will create actual image
+
+FROM alpine:3.8
+WORKDIR /opt/cds-ui/
+
+RUN apk add --no-cache npm
+COPY --from=stage0 /opt/cds-ui /opt/cds-ui
+COPY --from=stage1 /opt/cds-ui/server/public /opt/cds-ui/public
+
+EXPOSE 3000
CMD [ "npm", "start" ]
<name>${image.name}</name>
<build>
<cleanup>try</cleanup>
+ <noCache>true</noCache>
<tags>
<tag>${project.docker.latestminortag.version}</tag>
<tag>${project.docker.latestfulltag.version}</tag>
<name>${image.name}</name>
<build>
<cleanup>try</cleanup>
+ <noCache>true</noCache>
<dockerFileDir>${basedir}</dockerFileDir>
<tags>
<tag>${project.docker.latestminortag.version}</tag>
}\r
}\r
}\r
+ },\r
+ "delete" : {\r
+ "tags" : [ "Resource configuration" ],\r
+ "summary" : "Delete a resource configuration snapshot identified by resourceId, resourceType, status.",\r
+ "description" : "Delete a resource configuration snapshot, identified by its resourceId and resourceType, and optionally its status, either RUNNING or CANDIDATE.",\r
+ "operationId" : "ResourceConfigSnapshotController_deleteWithResourceIdAndResourceType_DELETE.org.onap.ccsdk.cds.blueprintsprocessor.configs.api",\r
+ "parameters" : [ {\r
+ "name" : "resourceType",\r
+ "in" : "path",\r
+ "description" : "Resource Type associated with the resolution.",\r
+ "required" : true,\r
+ "type" : "string"\r
+ }, {\r
+ "name" : "resourceId",\r
+ "in" : "path",\r
+ "description" : "Resource Id associated with the resolution.",\r
+ "required" : true,\r
+ "type" : "string"\r
+ }, {\r
+ "name" : "status",\r
+ "in" : "path",\r
+ "description" : "Status of the snapshot being deleted.",\r
+ "required" : true,\r
+ "type" : "string"\r
+ } ],\r
+ "responses" : {\r
+ "200" : {\r
+ "description" : "successful operation",\r
+ "schema" : {\r
+ "type" : "object"\r
+ }\r
+ }\r
+ }\r
}\r
},\r
"/api/v1/dictionary" : {\r
"JsonNode" : {\r
"type" : "object",\r
"properties" : {\r
+ "floatingPointNumber" : {\r
+ "type" : "boolean"\r
+ },\r
"valueNode" : {\r
"type" : "boolean"\r
},\r
"missingNode" : {\r
"type" : "boolean"\r
},\r
- "array" : {\r
+ "pojo" : {\r
"type" : "boolean"\r
},\r
- "object" : {\r
+ "integralNumber" : {\r
"type" : "boolean"\r
},\r
- "nodeType" : {\r
- "type" : "string",\r
- "enum" : [ "ARRAY", "BINARY", "BOOLEAN", "MISSING", "NULL", "NUMBER", "OBJECT", "POJO", "STRING" ]\r
- },\r
- "pojo" : {\r
+ "textual" : {\r
"type" : "boolean"\r
},\r
- "number" : {\r
+ "binary" : {\r
"type" : "boolean"\r
},\r
- "integralNumber" : {\r
+ "object" : {\r
"type" : "boolean"\r
},\r
- "floatingPointNumber" : {\r
+ "array" : {\r
"type" : "boolean"\r
},\r
- "short" : {\r
+ "null" : {\r
"type" : "boolean"\r
},\r
- "int" : {\r
+ "short" : {\r
"type" : "boolean"\r
},\r
- "long" : {\r
- "type" : "boolean"\r
+ "nodeType" : {\r
+ "type" : "string",\r
+ "enum" : [ "ARRAY", "BINARY", "BOOLEAN", "MISSING", "NULL", "NUMBER", "OBJECT", "POJO", "STRING" ]\r
},\r
"float" : {\r
"type" : "boolean"\r
},\r
- "double" : {\r
+ "number" : {\r
"type" : "boolean"\r
},\r
- "bigDecimal" : {\r
+ "boolean" : {\r
"type" : "boolean"\r
},\r
- "bigInteger" : {\r
+ "int" : {\r
"type" : "boolean"\r
},\r
- "textual" : {\r
+ "double" : {\r
"type" : "boolean"\r
},\r
- "boolean" : {\r
+ "long" : {\r
"type" : "boolean"\r
},\r
- "null" : {\r
+ "bigDecimal" : {\r
"type" : "boolean"\r
},\r
- "binary" : {\r
+ "bigInteger" : {\r
"type" : "boolean"\r
}\r
}\r
"Page" : {\r
"type" : "object",\r
"properties" : {\r
- "totalPages" : {\r
- "type" : "integer",\r
- "format" : "int32"\r
- },\r
"totalElements" : {\r
"type" : "integer",\r
"format" : "int64"\r
},\r
- "number" : {\r
+ "totalPages" : {\r
"type" : "integer",\r
"format" : "int32"\r
},\r
- "size" : {\r
+ "number" : {\r
"type" : "integer",\r
"format" : "int32"\r
},\r
- "numberOfElements" : {\r
+ "size" : {\r
"type" : "integer",\r
"format" : "int32"\r
},\r
"sort" : {\r
"$ref" : "#/definitions/Sort"\r
},\r
- "first" : {\r
- "type" : "boolean"\r
+ "numberOfElements" : {\r
+ "type" : "integer",\r
+ "format" : "int32"\r
},\r
- "last" : {\r
+ "first" : {\r
"type" : "boolean"\r
},\r
"pageable" : {\r
"$ref" : "#/definitions/Pageable"\r
},\r
+ "last" : {\r
+ "type" : "boolean"\r
+ },\r
"empty" : {\r
"type" : "boolean"\r
}\r
"PageBlueprintModelSearch" : {\r
"type" : "object",\r
"properties" : {\r
- "totalPages" : {\r
- "type" : "integer",\r
- "format" : "int32"\r
- },\r
"totalElements" : {\r
"type" : "integer",\r
"format" : "int64"\r
},\r
- "number" : {\r
+ "totalPages" : {\r
"type" : "integer",\r
"format" : "int32"\r
},\r
- "size" : {\r
+ "number" : {\r
"type" : "integer",\r
"format" : "int32"\r
},\r
- "numberOfElements" : {\r
+ "size" : {\r
"type" : "integer",\r
"format" : "int32"\r
},\r
"sort" : {\r
"$ref" : "#/definitions/Sort"\r
},\r
- "first" : {\r
- "type" : "boolean"\r
+ "numberOfElements" : {\r
+ "type" : "integer",\r
+ "format" : "int32"\r
},\r
- "last" : {\r
+ "first" : {\r
"type" : "boolean"\r
},\r
"pageable" : {\r
"$ref" : "#/definitions/Pageable"\r
},\r
+ "last" : {\r
+ "type" : "boolean"\r
+ },\r
"empty" : {\r
"type" : "boolean"\r
}\r
"paged" : {\r
"type" : "boolean"\r
},\r
- "unpaged" : {\r
- "type" : "boolean"\r
- },\r
"pageNumber" : {\r
"type" : "integer",\r
"format" : "int32"\r
},\r
+ "unpaged" : {\r
+ "type" : "boolean"\r
+ },\r
"pageSize" : {\r
"type" : "integer",\r
"format" : "int32"\r
"Sort" : {\r
"type" : "object",\r
"properties" : {\r
- "sorted" : {\r
+ "unsorted" : {\r
"type" : "boolean"\r
},\r
- "unsorted" : {\r
+ "sorted" : {\r
"type" : "boolean"\r
},\r
"empty" : {\r
<name>${image.name}</name>
<build>
<cleanup>try</cleanup>
+ <noCache>true</noCache>
<dockerFileDir>${basedir}/target/docker-stage</dockerFileDir>
<tags>
<tag>${project.docker.latestminortag.version}</tag>
-FROM onap/ccsdk-alpine-j11-image:1.1.0
-
+# Prepare stage for multistage image build
+## START OF STAGE0 ##
+FROM onap/ccsdk-alpine-j11-image:1.1.2 AS stage0
USER root
+
# add entrypoint
-COPY startService.sh /opt/app/onap/blueprints-processor/startService.sh
+COPY *.sh /opt/app/onap/blueprints-processor/
+
# add application
COPY @project.build.finalName@-@assembly.id@.tar.gz /source.tar.gz
&& cp -rf /tmp/@project.build.finalName@/opt / \
&& rm -rf /source.tar.gz \
&& rm -rf /tmp/@project.build.finalName@ \
- && touch /velocity.log \
- && chown onap:onap /velocity.log \
- && chmod 755 /velocity.log \
&& mkdir -p /opt/app/onap/blueprints/deploy \
- && chown onap:onap /opt -R \
- && chmod 755 /opt/app/onap/blueprints-processor/startService.sh
+ && touch /velocity.log \
+ && chown -R onap:onap /opt /velocity.log \
+ && chmod -R 755 /opt /velocity.log
+
+## END OF STAGE0 ##
+
+
+## This will create actual image
+FROM onap/ccsdk-alpine-j11-image:1.1.2
+USER root
+
+COPY --from=stage0 /opt /opt
+COPY --from=stage0 /velocity.log /velocity.log
USER onap
ENTRYPOINT [ "/opt/app/onap/blueprints-processor/startService.sh" ]
<name>${image.name}</name>
<build>
<cleanup>try</cleanup>
+ <noCache>true</noCache>
<dockerFileDir>${basedir}/target/docker-stage</dockerFileDir>
<tags>
<tag>${project.docker.latestminortag.version}</tag>
FROM python:3.7-slim
-
USER root
-RUN mkdir -p /opt/app/onap/logs/ && touch /opt/app/onap/logs/application.log
# add entrypoint
-COPY start.sh /opt/app/onap/command-executor/start.sh
+COPY *.sh /opt/app/onap/command-executor/
+
# add application
COPY @project.build.finalName@-@assembly.id@.tar.gz /source.tar.gz
RUN tar -xzf /source.tar.gz -C /tmp \
- && cp -rf /tmp/@project.build.finalName@/opt / \
- && rm -rf /source.tar.gz \
- && rm -rf /tmp/@project.build.finalName@ \
- && mkdir -p /opt/app/onap/blueprints/deploy \
- && chmod 755 /opt/app/onap/command-executor/start.sh
-
-VOLUME /opt/app/onap/blueprints/deploy/
+ && cp -rf /tmp/@project.build.finalName@/opt / \
+ && rm -rf /source.tar.gz \
+ && rm -rf /tmp/@project.build.finalName@ \
+ && groupadd -r -g 1000 onap && useradd -r -u 1000 -g onap onap \
+ && mkdir -p /opt/app/onap/blueprints/deploy /opt/app/onap/logs \
+ && touch /opt/app/onap/logs/application.log \
+ && chown -R onap:onap /opt \
+ && chmod -R 755 /opt
RUN python -m pip install --no-cache-dir --upgrade pip setuptools
RUN pip install --no-cache-dir grpcio==1.20.0 grpcio-tools==1.20.0 virtualenv==16.7.9
-RUN groupadd -r -g 1000 onap && useradd -r -u 1000 -g onap onap
-RUN chown onap:onap /opt -R
USER onap
ENTRYPOINT /opt/app/onap/command-executor/start.sh
FROM python:3.7-slim
-
USER root
-RUN mkdir -p /opt/app/onap/logs/ && touch /opt/app/onap/logs/application.log
# add entrypoint
-COPY start.sh /opt/app/onap/py-executor/start.sh
+COPY *.sh /opt/app/onap/py-executor/
+
# add application
COPY @project.build.finalName@-@assembly.id@.tar.gz /source.tar.gz
RUN tar -xzf /source.tar.gz -C /tmp \
- && cp -rf /tmp/@project.build.finalName@/opt / \
- && rm -rf /source.tar.gz \
- && rm -rf /tmp/@project.build.finalName@ \
- && mkdir -p /opt/app/onap/blueprints/deploy \
- && chmod 755 /opt/app/onap/py-executor/start.sh
-
-VOLUME /opt/app/onap/blueprints/deploy/
+ && cp -rf /tmp/@project.build.finalName@/opt / \
+ && rm -rf /source.tar.gz \
+ && rm -rf /tmp/@project.build.finalName@ \
+ && groupadd -r -g 1000 onap && useradd -r -u 1000 -g onap onap \
+ && mkdir -p /opt/app/onap/blueprints/deploy /opt/app/onap/logs \
+ && touch /opt/app/onap/logs/application.log \
+ && chown -R onap:onap /opt \
+ && chmod -R 755 /opt
RUN python -m pip install --no-cache-dir --upgrade pip setuptools
RUN pip install --no-cache-dir -r /opt/app/onap/python/requirements/docker.txt
-RUN groupadd -r -g 1000 onap && useradd -r -u 1000 -g onap onap
-RUN chown onap:onap /opt -R
USER onap
ENTRYPOINT /opt/app/onap/py-executor/start.sh
<artifactId>py-executor</artifactId>
- <name>MS Python Script Executor</name>
+ <name>MS Python Executor</name>
<description>Micro-service providing python environment with gRPC binding for python script execution</description>
<properties>
<name>${image.name}</name>
<build>
<cleanup>try</cleanup>
+ <noCache>true</noCache>
<dockerFileDir>${basedir}/target/docker-stage</dockerFileDir>
<tags>
<tag>${project.docker.latestminortag.version}</tag>
<name>${image.name}</name>
<build>
<cleanup>try</cleanup>
+ <noCache>true</noCache>
<dockerFileDir>${basedir}/target/docker-stage</dockerFileDir>
<tags>
<tag>${project.docker.latestminortag.version}</tag>
-FROM onap/ccsdk-alpine-j11-image:1.1.0
+# Prepare stage for multistage image build
+## START OF STAGE0 ##
+FROM onap/ccsdk-alpine-j11-image:1.1.2 AS stage0
USER root
+
# add entrypoint
-COPY startService.sh /opt/app/onap/sdc-listener/startService.sh
+COPY *.sh /opt/app/onap/sdc-listener/
+
# add application
COPY @project.build.finalName@-@assembly.id@.tar.gz /source.tar.gz
&& rm -rf /source.tar.gz \
&& rm -rf /tmp/@project.build.finalName@ \
&& mkdir -p /opt/app/onap/cds-sdc-listener \
- && chown onap:onap /opt -R \
- && chmod 755 /opt/app/onap/sdc-listener/startService.sh
+ && chown -R onap:onap /opt \
+ && chmod -R 755 /opt
+
+## END OF STAGE0 ##
+
+
+## This will create actual image
+FROM onap/ccsdk-alpine-j11-image:1.1.2
+USER root
+
+COPY --from=stage0 /opt /opt
USER onap
ENTRYPOINT /opt/app/onap/sdc-listener/startService.sh