diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | cds-ui/server/.dockerignore | 4 | ||||
-rw-r--r-- | cds-ui/server/Dockerfile | 28 | ||||
-rw-r--r-- | cds-ui/server/pom.xml | 69 |
4 files changed, 102 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore index 5dbd1d403..e3e0e1f22 100644 --- a/.gitignore +++ b/.gitignore @@ -144,3 +144,4 @@ MacOS # To Remove Kotlin Script Generated Jars **/*cba-kts.jar +/target/ diff --git a/cds-ui/server/.dockerignore b/cds-ui/server/.dockerignore new file mode 100644 index 000000000..3b3ee0060 --- /dev/null +++ b/cds-ui/server/.dockerignore @@ -0,0 +1,4 @@ +node_modules +npm-debug.log +/dist + diff --git a/cds-ui/server/Dockerfile b/cds-ui/server/Dockerfile new file mode 100644 index 000000000..bca90e201 --- /dev/null +++ b/cds-ui/server/Dockerfile @@ -0,0 +1,28 @@ +# Check out https://hub.docker.com/_/node to select a new base image +FROM node:10-slim + +# Set to a non-root built-in user `node` +USER node + +# Create app directory (with user `node`) +RUN mkdir -p /home/node/app + +WORKDIR /home/node/app + +# Install app dependencies +# A wildcard is used to ensure both package.json AND package-lock.json are copied +# where available (npm@5+) +COPY --chown=node package*.json ./ + +RUN npm install + +# Bundle app source code +COPY --chown=node . . + +RUN npm run build + +# Bind to all network interfaces so that it can be mapped to the host OS +ENV HOST=0.0.0.0 PORT=3000 + +EXPOSE ${PORT} +CMD [ "node", "." ] diff --git a/cds-ui/server/pom.xml b/cds-ui/server/pom.xml index 59b14b890..1c05d5521 100644 --- a/cds-ui/server/pom.xml +++ b/cds-ui/server/pom.xml @@ -39,6 +39,8 @@ limitations under the License. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <npm.executable>npm</npm.executable> <onap.nexus.url>https://nexus.onap.org</onap.nexus.url> + <image.name>onap/ccsdk-cds-ui-server</image.name> + <docker.push.phase>deploy</docker.push.phase> </properties> <build> @@ -91,6 +93,73 @@ limitations under the License. </executions> </plugin> + <plugin> + <groupId>org.codehaus.groovy.maven</groupId> + <artifactId>gmaven-plugin</artifactId> + <version>1.0</version> + <executions> + <execution> + <phase>validate</phase> + <goals> + <goal>execute</goal> + </goals> + <configuration> + <source>${basedir}/../../TagVersion.groovy</source> + </configuration> + </execution> + </executions> + </plugin> </plugins> </build> + + <profiles> + <profile> + <id>docker</id> + <build> + <plugins> + <plugin> + <groupId>io.fabric8</groupId> + <artifactId>docker-maven-plugin</artifactId> + <version>0.26.1</version> + <inherited>false</inherited> + <configuration> + <images> + <image> + <name>${image.name}</name> + <build> + <cleanup>try</cleanup> + <dockerFileDir>${basedir}</dockerFileDir> + <tags> + <tag>${project.docker.latestminortag.version}</tag> + <tag>${project.docker.latestfulltag.version}</tag> + <tag>${project.docker.latesttagtimestamp.version}</tag> + </tags> + </build> + </image> + </images> + <verbose>true</verbose> + </configuration> + <executions> + <execution> + <id>generate-images</id> + <phase>package</phase> + <goals> + <goal>build</goal> + </goals> + </execution> + <execution> + <id>push-images</id> + <phase>${docker.push.phase}</phase> + <goals> + <goal>build</goal> + <goal>push</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + + </profiles> </project> |