diff --git a/services/clsi/Dockerfile b/services/clsi/Dockerfile index de5f218276..62ef342538 100644 --- a/services/clsi/Dockerfile +++ b/services/clsi/Dockerfile @@ -6,6 +6,7 @@ WORKDIR /app RUN npm install + RUN npm run compile:all FROM node:6.13.0 @@ -14,9 +15,13 @@ COPY --from=app /app /app WORKDIR /app + +# All app and node_modules will be owned by root. +# The app will run as the 'app' user, and so not have write permissions +# on any files it doesn't need. RUN useradd --user-group --create-home --home-dir /app --shell /bin/false app RUN [ -e ./install_deps.sh ] && ./install_deps.sh - ENTRYPOINT ["/bin/sh", "entrypoint.sh"] + CMD ["node","app.js"] diff --git a/services/clsi/Jenkinsfile b/services/clsi/Jenkinsfile index e92cfbe565..7a34ee75bd 100644 --- a/services/clsi/Jenkinsfile +++ b/services/clsi/Jenkinsfile @@ -14,7 +14,6 @@ pipeline { sh 'make ci' } } - stage('Publish build number') { steps { sh 'echo ${BRANCH_NAME}-${BUILD_NUMBER} > build_number.txt' diff --git a/services/clsi/Makefile b/services/clsi/Makefile index 450efc80e2..063d96e602 100644 --- a/services/clsi/Makefile +++ b/services/clsi/Makefile @@ -28,13 +28,12 @@ test_acceptance: test_clean # clear the database before each acceptance test run test_clean: $(DOCKER_COMPOSE) down -t 0 - build: docker build --pull --tag quay.io/sharelatex/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) . publish: docker push quay.io/sharelatex/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) - + ci: # On the CI server, we want to run our tests in the image that we # have built for deployment, which is what the docker-compose.ci.yml @@ -43,7 +42,7 @@ ci: BRANCH_NAME=$(BRANCH_NAME) \ BUILD_NUMBER=$(BUILD_NUMBER) \ DOCKER_COMPOSE_FLAGS="-f docker-compose.ci.yml" \ - $(MAKE) build test + $(MAKE) build test publish .PHONY: clean test test_unit test_acceptance test_clean build publish diff --git a/services/clsi/docker-compose.ci.yml b/services/clsi/docker-compose.ci.yml index 16a5da3669..2ca2f9a32b 100644 --- a/services/clsi/docker-compose.ci.yml +++ b/services/clsi/docker-compose.ci.yml @@ -12,10 +12,17 @@ services: test_acceptance: build: . + image: quay.io/sharelatex/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER extends: file: docker-compose-config.yml - service: ci - entrypoint: npm run test:acceptance + service: dev + environment: + REDIS_HOST: redis + MONGO_HOST: mongo + depends_on: + - redis + - mongo + entrypoint: npm run test:acceptance:_run redis: image: redis diff --git a/services/clsi/docker-compose.yml b/services/clsi/docker-compose.yml index e6af23b152..cf90742761 100644 --- a/services/clsi/docker-compose.yml +++ b/services/clsi/docker-compose.yml @@ -21,7 +21,13 @@ services: extends: file: docker-compose-config.yml service: dev - command: npm run test:acceptance + environment: + REDIS_HOST: redis + MONGO_HOST: mongo + depends_on: + - redis + - mongo + entrypoint: npm run test:acceptance redis: image: redis diff --git a/services/clsi/package.json b/services/clsi/package.json index 771ee96deb..fed32605ba 100644 --- a/services/clsi/package.json +++ b/services/clsi/package.json @@ -21,7 +21,7 @@ "compile:all": "npm run compile:app && npm run compile:unit_tests && npm run compile:acceptance_tests", "nodemon": "nodemon --config nodemon.json" }, - "author": "James Allen ", + "author": "James Allen ", "dependencies": { "async": "0.2.9", "body-parser": "^1.2.0",