diff --git a/app/server/.gitlab-ci.yml b/app/server/.gitlab-ci.yml
index d81da0506a..c410d05069 100644
--- a/app/server/.gitlab-ci.yml
+++ b/app/server/.gitlab-ci.yml
@@ -1,11 +1,10 @@
.only-default: &only-default
only:
+ - release
- master
- merge_requests
image: docker:latest
-services:
- - redis
cache:
paths:
@@ -26,20 +25,40 @@ stages:
maven-build:
image: maven:3-jdk-11-slim
stage: build
+ services:
+ - redis
script:
- mvn package -B -Dspring.profiles.active=$SPRING_PROFILES_ACTIVE
artifacts:
paths:
- appsmith-server/target/*.jar
+ - appsmith-plugins/*/target/*.jar
only:
+ - release
- master
- merge_requests
docker-package:
- image: maven:3-jdk-11-slim
+ image: docker:dind
+ services:
+ - docker:dind
stage: package
script:
- - mvn package -DskipTests -DskipDockerBuild=false
+ - docker build -t arpitappsmith/appsmith-server:release .
+ - docker login -u $DOCKER_HUB_USERNAME -p $DOCKER_HUB_ACCESS_TOKEN
+ - docker push arpitappsmith/appsmith-server:release
+ only:
+ - release
+
+docker-package-master:
+ image: docker:dind
+ services:
+ - docker:dind
+ stage: package
+ script:
+ - docker build -t arpitappsmith/appsmith-server:latest .
+ - docker login -u $DOCKER_HUB_USERNAME -p $DOCKER_HUB_ACCESS_TOKEN
+ - docker push arpitappsmith/appsmith-server:latest
only:
- master
@@ -49,4 +68,4 @@ heroku-deploy:
script:
- dpl --provider=heroku --app=appsmith-test --api-key=$HEROKU_API_KEY
only:
- - master
\ No newline at end of file
+ - release
\ No newline at end of file
diff --git a/app/server/Dockerfile b/app/server/Dockerfile
new file mode 100644
index 0000000000..034d471a8e
--- /dev/null
+++ b/app/server/Dockerfile
@@ -0,0 +1,24 @@
+#When you are building, name it appsmith-server which is how it is referenced in docker-compose.yml
+
+FROM adoptopenjdk/openjdk11:alpine-jre
+
+LABEL maintainer="tech@appsmith.com"
+
+VOLUME /tmp
+
+EXPOSE 8080
+
+ARG JAR_FILE=./appsmith-server/target/server-1.0-SNAPSHOT.jar
+ARG PLUGIN_JARS=./appsmith-plugins/*/target/*.jar
+
+#Create the plugins directory
+RUN mkdir -p /plugins
+
+#Add the jar to the container. Always keep this at the end. This is to ensure that all the things that can be taken
+#care of via the cache happens. The following statement would lead to copy because of change in hash value
+COPY entrypoint.sh /entrypoint.sh
+COPY ${JAR_FILE} server.jar
+COPY ${PLUGIN_JARS} /plugins/
+
+#Run the jar
+ENTRYPOINT ["/bin/sh", "-c" , "/entrypoint.sh"]
diff --git a/app/server/appsmith-plugins/pom.xml b/app/server/appsmith-plugins/pom.xml
index d5a92eb925..83d78130b7 100644
--- a/app/server/appsmith-plugins/pom.xml
+++ b/app/server/appsmith-plugins/pom.xml
@@ -19,5 +19,5 @@
restApiPlugin
mongoPlugin
-
+
\ No newline at end of file
diff --git a/app/server/appsmith-server/pom.xml b/app/server/appsmith-server/pom.xml
index fc60ba8562..cd38c8a68e 100644
--- a/app/server/appsmith-server/pom.xml
+++ b/app/server/appsmith-server/pom.xml
@@ -8,10 +8,10 @@
1.0-SNAPSHOT
- com.appsmith
- server
- 1.0-SNAPSHOT
- jar
+ com.appsmith
+ server
+ 1.0-SNAPSHOT
+ jar
server
This is the API server for the Appsmith project
@@ -109,10 +109,10 @@
0.9.6
- de.flapdoodle.embed
- de.flapdoodle.embed.mongo
- test
-
+ de.flapdoodle.embed
+ de.flapdoodle.embed.mongo
+ test
+
com.google.guava
guava
@@ -136,12 +136,12 @@
interfaces
1.0-SNAPSHOT
-
-
- org.pf4j
- pf4j-spring
- 0.5.0
-
+
+
+ org.pf4j
+ pf4j-spring
+ 0.5.0
+
org.springframework.boot
spring-boot-starter-test
diff --git a/app/server/entrypoint.sh b/app/server/entrypoint.sh
new file mode 100755
index 0000000000..a920f3c1b6
--- /dev/null
+++ b/app/server/entrypoint.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+java -Djava.security.egd="file:/dev/./urandom" -jar server.jar
\ No newline at end of file
diff --git a/app/server/pom.xml b/app/server/pom.xml
index 589ef890c2..6a959fcb7a 100644
--- a/app/server/pom.xml
+++ b/app/server/pom.xml
@@ -39,51 +39,6 @@
-
-
-
- com.google.cloud.tools
- jib-maven-plugin
- 1.6.1
-
-
- adoptopenjdk/openjdk11:alpine-jre
-
-
-
- docker.io/arpitappsmith/appsmith-server
-
-
- ${env.DOCKER_HUB_USERNAME}
- ${env.DOCKER_HUB_ACCESS_TOKEN}
-
-
-
-
- -server
-
-
- ${skipDockerBuild}
-
-
-
- build-and-push-docker-image
- package
-
- build
-
-
-
-
-
-