diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f2f5089 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,45 @@ +FROM node +EXPOSE 7000 +RUN apt-get -y update \ + && apt-get -y upgrade \ + && apt-get -y install openjdk-7-jdk --no-install-recommends \ + && npm install bower -g \ + && echo '{ "allow_root": true }' > /root/.bowerrc \ + && npm install -g grunt-cli \ + && apt-get -y install wget --no-install-recommends \ + && wget -q -O /usr/bin/lein https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein && chmod +x /usr/bin/lein && lein \ + && apt-get remove -y wget \ + && cd $(npm root -g)/npm \ + && npm install fs-extra \ + && sed -i -e s/graceful-fs/fs-extra/ -e s/fs.rename/fs.move/ ./lib/utils/rename.js \ + && apt-get clean \ + && apt-get autoremove -y \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +ENV APP_HOME /usr/local/visualreview +ENV APP_TEMP_HOME /usr/local/visualreviewTemp + +# RUN mkdir -p ${APP_HOME} +# RUN mkdir -p ${APP_TEMP_HOME} + +WORKDIR ${APP_TEMP_HOME} + +# add source +ADD . ${APP_TEMP_HOME} + +RUN LEIN_ROOT=true lein uberjar \ + && rm -fr /root/.cache /root/.lein /root/.m2 /root/.npm /root/.node-gyp \ + && mkdir output \ + && mv target/*-standalone.jar output \ + && rm -fr target + + +WORKDIR ${APP_HOME} +RUN mv ${APP_TEMP_HOME}/output/*-standalone.jar ${APP_HOME} \ + && cp ${APP_TEMP_HOME}/config.edn . \ + && rm -fr $APP_TEMP_HOME \ + && mv `ls *-standalone.jar` app-standalone.jar + + + +CMD ["java", "-jar", "app-standalone.jar"] diff --git a/Dockerfile.dist b/Dockerfile.dist new file mode 100644 index 0000000..67f8486 --- /dev/null +++ b/Dockerfile.dist @@ -0,0 +1,17 @@ +FROM anapsix/alpine-java:jdk8 + +EXPOSE 7000 + +ENV APP_HOME /app/vr/ +ENV APP_DATA /opt/data/visualreview/ + +RUN mkdir -p ${APP_HOME} +RUN mkdir -p ${APP_DATA} + +ADD app-standalone.jar /${APP_HOME} +ADD config.edn ${APP_HOME} + +WORKDIR ${APP_HOME} +VOLUME [${APP_DATA}] + +CMD ["java", "-jar", "/app/vr/app-standalone.jar"] \ No newline at end of file diff --git a/circle.yml b/circle.yml new file mode 100644 index 0000000..de01b6a --- /dev/null +++ b/circle.yml @@ -0,0 +1,21 @@ +machine: + services: + - docker + +test: + override: + - lein test-all + - lein uberjar + - cp target/*.jar $CIRCLE_ARTIFACTS + +deployment: + hub: + branch: dockerfile + commands: + - mkdir DIST + - cp Dockerfile.dist DIST/ + - cp `ls target/*-standalone.jar` DIST/app-standalone.jar + - cp config.edn.Dist DIST/config.edn + - cd DIST && docker build -t xebia/visualreview -f Dockerfile.dist . + - docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS + - docker push xebia/visualreview diff --git a/config.edn.Dist b/config.edn.Dist new file mode 100644 index 0000000..dd8ebc8 --- /dev/null +++ b/config.edn.Dist @@ -0,0 +1,13 @@ +{ + ;; Server + :server-port "7000" + + ;; Database + :db-uri "file:/opt/data/visualreview/visualreview.db" + :db-user "" + :db-password "" + + ;; File system + :screenshots-dir "/opt/data/visualreview/screenshots" + + }