diff --git a/app/js/CompileManager.js b/app/js/CompileManager.js index 3bf54bc..5bf3e94 100644 --- a/app/js/CompileManager.js +++ b/app/js/CompileManager.js @@ -53,9 +53,12 @@ module.exports = CompileManager = { } const compileDir = getCompileDir(request.project_id, request.user_id) const lockFile = Path.join(compileDir, '.project-lock') + // create local home and tmp directories in the compile dir + const homeDir = Path.join(compileDir, '.project-home') + const tmpDir = Path.join(compileDir, '.project-tmp') // use a .project-lock file in the compile directory to prevent // simultaneous compiles - return fse.ensureDir(compileDir, function(error) { + async.each([compileDir, homeDir, tmpDir], fse.ensureDir, function (error) { if (error != null) { return callback(error) } diff --git a/config/settings.defaults.js b/config/settings.defaults.js index ba63e24..01383be 100644 --- a/config/settings.defaults.js +++ b/config/settings.defaults.js @@ -71,7 +71,8 @@ if (process.env.DOCKER_RUNNER) { image: process.env.TEXLIVE_IMAGE || 'quay.io/sharelatex/texlive-full:2017.1', env: { - HOME: '/tmp' + HOME: process.env.TEXLIVE_HOME || '/tmp', + TMPDIR: process.env.TEXLIVE_TMPDIR || '/tmp' }, socketPath: '/var/run/docker.sock', user: process.env.TEXLIVE_IMAGE_USER || 'tex'