Run DFC docker container as a non-root user 03/79003/1
authorRehanRaza <muhammad.rehan.raza@est.tech>
Fri, 22 Feb 2019 10:04:34 +0000 (10:04 +0000)
committerRehanRaza <muhammad.rehan.raza@est.tech>
Fri, 22 Feb 2019 10:04:34 +0000 (10:04 +0000)
Change-Id: I82504ebebc8ddf48f6ee6b1c1dfbe433c60ab1aa
Issue-ID: DCAEGEN2-1269
Signed-off-by: RehanRaza <muhammad.rehan.raza@est.tech>
datafile-app-server/config/application.yaml
datafile-app-server/pom.xml
datafile-app-server/src/main/resources/Dockerfile [new file with mode: 0644]

index b66f7b6..f253857 100644 (file)
@@ -16,6 +16,6 @@ logging:
     org.springframework.data: ERROR
     org.springframework.web.reactive.function.client.ExchangeFunctions: ERROR
     org.onap.dcaegen2.collectors.datafile: ERROR
-  file: opt/log/application.log
+  file: /var/log/ONAP/application.log
 app:
-  filepath: config/datafile_endpoints.json
+  filepath: /opt/app/datafile/config/datafile_endpoints.json
index 90b6fea..3ceccdb 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ~ ============LICENSE_START=======================================================
-  ~ Copyright (C) 2018 NOKIA Intellectual Property, 2018 Nordix Foundation. All rights reserved.
+  ~ Copyright (C) 2018 NOKIA Intellectual Property, 2018-2019 Nordix Foundation. 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.
@@ -32,6 +32,7 @@
   <packaging>jar</packaging>
 
   <properties>
+    <dockerfile.maven.version>1.4.10</dockerfile.maven.version>
     <docker.image.name>onap/${project.groupId}.${project.artifactId}</docker.image.name>
     <maven.build.timestamp.format>yyyyMMdd'T'HHmmss</maven.build.timestamp.format>
   </properties>
       </plugin>
       <plugin>
         <groupId>com.spotify</groupId>
-        <artifactId>docker-maven-plugin</artifactId>
+        <artifactId>dockerfile-maven-plugin</artifactId>
+        <version>${dockerfile.maven.version}</version>
         <configuration>
-          <serverId>${onap.nexus.dockerregistry.daily}</serverId>
-          <imageName>${docker.image.name}</imageName>
-          <imageTags>
-            <tag>latest</tag>
-          </imageTags>
-          <baseImage>openjdk:8-jre-alpine</baseImage>
-          <resources>
-            <resource>
-              <directory>${project.build.directory}</directory>
-              <include>${project.artifactId}.jar</include>
-              <targetPath>/target</targetPath>
-            </resource>
-            <resource>
-              <targetPath>/config</targetPath>
-              <directory>${project.basedir}/config</directory>
-              <include>*</include>
-            </resource>
-          </resources>
-          <exposes>
-            <expose>8100</expose>
-            <expose>8433</expose>
-          </exposes>
-          <cmd>["java", "-jar", "/target/${project.artifactId}.jar"]</cmd>
+          <repository>${onap.nexus.dockerregistry.daily}/${docker.image.name}</repository>
+          <tag>${project.version}</tag>
+          <dockerfile>${project.build.outputDirectory}/Dockerfile</dockerfile>
+          <buildArgs>
+            <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
+          </buildArgs>
         </configuration>
         <executions>
           <execution>
diff --git a/datafile-app-server/src/main/resources/Dockerfile b/datafile-app-server/src/main/resources/Dockerfile
new file mode 100644 (file)
index 0000000..1869d36
--- /dev/null
@@ -0,0 +1,42 @@
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# 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=========================================================
+#
+FROM openjdk:8-jre-alpine
+
+WORKDIR /opt/app/datafile
+RUN mkdir -p /var/log/ONAP
+
+ARG JAR_FILE
+ADD /target/${JAR_FILE} /opt/app/datafile/datafile-app-server.jar
+
+ADD /config/application.yaml /opt/app/datafile/config/
+ADD /config/cacerts /opt/app/datafile/config/
+ADD /config/datafile_endpoints.json /opt/app/datafile/config/
+ADD /config/ftpKey.jks /opt/app/datafile/config/
+ADD /config/keystore /opt/app/datafile/config/
+
+EXPOSE 8100 8433
+
+RUN addgroup -S onap && adduser -S datafile -G onap
+RUN chown -R datafile:onap /opt/app/datafile
+RUN chown -R datafile:onap /var/log/ONAP
+
+USER datafile
+
+ENTRYPOINT ["/usr/bin/java", "-jar", "/opt/app/datafile/datafile-app-server.jar"]
\ No newline at end of file