RUN apk add --no-cache 'python<3' py-pip && pip install cqlsh==4.0.1
-ENV CASSANDRA_PORT=9160
-
COPY create_activityspec_db.cql .
COPY start.sh .
#!/bin/sh
-if [[ -z "${CASSANDRA_HOST}" ]]; then
- echo "CASSANDRA_HOST environment variable must be set"
+if [[ -z "${CS_USER}" ]]; then
+ echo "CS_USER environment variable must be set"
exit 1
fi
-cqlsh -f /create_activityspec_db.cql $CASSANDRA_HOST $CASSANDRA_PORT
\ No newline at end of file
+if [[ -z "${CS_PASSWORD}" ]]; then
+ echo "CS_PASSWORD environment variable must be set"
+ exit 1
+fi
+
+if [[ -z "${CS_HOST}" ]]; then
+ echo "CS_HOST environment variable must be set"
+ exit 1
+fi
+
+cqlsh -u $CS_USER -p $CS_PASSWORD -f /create_activityspec_db.cql $CS_HOST $CS_PORT
+++ /dev/null
-FROM jetty:9.4.9-alpine
-
-EXPOSE 8080
-EXPOSE 8443
-EXPOSE 5005
-
-ARG ARTIFACT_VERSION
-
-ENV LOGBACK_FILE_DIR /etc/onap/activity-spec/be/
-
-# See https://hub.docker.com/_/jetty/
-ARG WEBAPPS_DIR=${JETTY_BASE}/webapps/
-
-COPY activity-spec-api-docs/target/activity-spec-api-docs-${ARTIFACT_VERSION}.war ${WEBAPPS_DIR}
-
-COPY activity-spec-war/target/activity-spec-war-${ARTIFACT_VERSION}.war ${WEBAPPS_DIR}
-
-COPY activity-spec-assembly/configuration.yaml .
-COPY activity-spec-assembly/start.sh .
-COPY activity-spec-assembly/logback.xml ${LOGBACK_FILE_DIR}
-
-USER root
-
-RUN chown jetty:jetty start.sh
-RUN chmod 744 start.sh
-
-ENTRYPOINT ["./start.sh"]
\ No newline at end of file
+++ /dev/null
-cassandraConfig:
- cassandraHosts: ['CASSANDRA_HOST']
- reconnectTimeout : 30000
- authenticate: false
- username: asdc_user
- password: Aa1234%^!
- ssl: false
- truststorePath : /path/path
- truststorePassword : Aa123456
\ No newline at end of file
+++ /dev/null
-#!/bin/sh
-
-if [[ -z "${CASSANDRA_HOST}" ]]; then
- echo "CASSANDRA_HOST environment variable must be set"
- exit 1
-fi
-
-#Replace 'CASSANDRA_HOST' in configuration.yaml with value of CASSANDRA_HOST environment variable
-sed -i "s/CASSANDRA_HOST/${CASSANDRA_HOST}/" configuration.yaml
-
-java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 "$JETTY_HOME/start.jar" -Dconfiguration.yaml=configuration.yaml -Dlogback.configurationFile=${LOGBACK_FILE_DIR}/logback.xml
\ No newline at end of file
--- /dev/null
+FROM jetty:9.4.9-alpine
+
+EXPOSE 8080
+EXPOSE 8443
+EXPOSE 5005
+
+USER root
+
+RUN mkdir -p /etc/onap/activity-spec/be
+RUN mkdir -p /var/log/ONAP/activity-spec/be
+
+ENV CONFIG_FILES_DIR /etc/onap/activity-spec/be
+ENV LOGS_DIR /var/log/ONAP/activity-spec/be
+
+ADD activity-spec-api-docs-*.war ${JETTY_BASE}/webapps/
+ADD activity-spec-war-*.war ${JETTY_BASE}/webapps/
+
+COPY start.sh .
+COPY logback.xml ${CONFIG_FILES_DIR}
+
+RUN chown -R jetty:jetty ${JETTY_BASE}/webapps
+RUN chmod 744 start.sh
+
+ENTRYPOINT [ "./start.sh" ]
\ No newline at end of file
--- /dev/null
+# Steps to run activiti-spec docker
+
+1. Create a directory on host machine to hold configuration file.
+2. Copy the provided configuration.yaml in this new;y created directory and populate real enviornment value of Cassandra to which activity-spec web service needs to be connected.
+3. Execute below commands to start docker containers.
+
+# 1. Start activity-spec container
+docker run -d --name <CONTAINER_NAME> -e JAVA_OPTIONS="-Xmx128m -Xms128m -Xss1m" -v <CONFIG_FILE_DIRECTORY_PATH>:/etc/onap/activity-spec/be/config -p <PORT_TO_HOST_SERVICE>:8080 <IMAGE_NAME>
+# 2. Start activity-spec-init container
+docker run -d --name <CONTAINER_NAME> -e CS_HOST=<CS_HOST_IP> -e CS_PORT=<CS_PORT> -e CS_USER=<CS_USER> -e CS_PASSWORD=<CS_PASSWORD> <IMAGE_NAME>
+
+# Example Commands
+docker run -d --name sdc-act -e JAVA_OPTIONS="-Xmx128m -Xms128m -Xss1m" -v /data/environments:/etc/onap/activity-spec/be/config -p 8090:8080 onap/activity-spec:1.2.0-SNAPSHOT
+docker run -d --name sdc-act-init -e CS_HOST=172.17.0.2 -e CS_USER=asdc_user -e CS_PORT=9160 -e CS_PASSWORD=Aa1234%^! onap/activity-spec-init:1.2.0-SNAPSHOT
--- /dev/null
+cassandraConfig:
+ cassandraHosts: ['${CS_HOST}']
+ reconnectTimeout : 30000
+ socketReadTimeout: 20000
+ socketConnectTimeout: 20000
+ authenticate: true
+ username: ${CS_USER}
+ password: ${CS_PASSWORD}
+ ssl: ${CS_SSL_ENABLED}
+ truststorePath : ${CS_TRUST_PATH}
+ truststorePassword : ${CS_TRUST_PASSWORD}
\ No newline at end of file
--- /dev/null
+#!/bin/sh
+
+JAVA_OPTIONS=" ${JAVA_OPTIONS} \
+ -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
+ -Dconfig.home=${CONFIG_FILES_DIR}/config \
+ -Dlog.home=${LOGS_DIR} \
+ -Dlogback.configurationFile=${CONFIG_FILES_DIR}/logback.xml \
+ -Dconfiguration.yaml=${CONFIG_FILES_DIR}/config/configuration.yaml"
+
+java -jar "$JETTY_HOME/start.jar" ${JAVA_OPTIONS}
\ No newline at end of file
</activation>
<build>
<plugins>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>3.0.2</version>
+ <executions>
+ <execution>
+ <id>copy-activity-spec-docker-assembly</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>target/activity-spec-docker-assembly</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${project.basedir}/activity-spec-docker-assembly</directory>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-static-configuration-files</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>target/activity-spec-docker-assembly</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${project.basedir}/activity-spec-service/src/main/resources/config</directory>
+ <includes>
+ <include>logback.xml</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-resources</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>target/activity-spec-docker-assembly</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${project.basedir}/activity-spec-war/target</directory>
+ <includes>
+ <include>activity-spec-war-${project.version}.war</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>${project.basedir}/activity-spec-api-docs/target
+ </directory>
+ <includes>
+ <include>activity-spec-api-docs-${project.version}.war</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<tags>
<tag>${project.version}</tag>
</tags>
- <dockerFileDir>${project.basedir}</dockerFileDir>
+ <dockerFileDir>${project.basedir}/target/activity-spec-docker-assembly</dockerFileDir>
<dockerFile>Dockerfile</dockerFile>
- <args>
- <ARTIFACT_VERSION>${project.version}</ARTIFACT_VERSION>
- </args>
</build>
</image>
</images>