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 - - - - - -