mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-12 13:13:45 +01:00
[clsi] merge sandboxed compiles config from Server Pro and SaaS (#25062)
* [clsi] merge sandboxed compiles config from Server Pro and SaaS * [clsi] reorder fallback env vars Co-authored-by: Mathew Evans <matt.evans@overleaf.com> * [server-pro] bump version of expected release with these changes --------- Co-authored-by: Mathew Evans <matt.evans@overleaf.com> GitOrigin-RevId: bada93fec89bcc3f2bab85b6e60b2e27de88b9c2
This commit is contained in:
committed by
Copybot
co-authored by
Mathew Evans
parent
247b4e274d
commit
a9780ccf96
+3
-1
@@ -75,11 +75,13 @@ services:
|
|||||||
|
|
||||||
## Sandboxed Compiles: https://github.com/overleaf/overleaf/wiki/Server-Pro:-Sandboxed-Compiles
|
## Sandboxed Compiles: https://github.com/overleaf/overleaf/wiki/Server-Pro:-Sandboxed-Compiles
|
||||||
SANDBOXED_COMPILES: 'true'
|
SANDBOXED_COMPILES: 'true'
|
||||||
SANDBOXED_COMPILES_SIBLING_CONTAINERS: 'true'
|
|
||||||
### Bind-mount source for /var/lib/overleaf/data/compiles inside the container.
|
### Bind-mount source for /var/lib/overleaf/data/compiles inside the container.
|
||||||
SANDBOXED_COMPILES_HOST_DIR_COMPILES: '/home/user/sharelatex_data/data/compiles'
|
SANDBOXED_COMPILES_HOST_DIR_COMPILES: '/home/user/sharelatex_data/data/compiles'
|
||||||
### Bind-mount source for /var/lib/overleaf/data/output inside the container.
|
### Bind-mount source for /var/lib/overleaf/data/output inside the container.
|
||||||
SANDBOXED_COMPILES_HOST_DIR_OUTPUT: '/home/user/sharelatex_data/data/output'
|
SANDBOXED_COMPILES_HOST_DIR_OUTPUT: '/home/user/sharelatex_data/data/output'
|
||||||
|
### Backwards compatibility (before Server Pro 5.5)
|
||||||
|
DOCKER_RUNNER: 'true'
|
||||||
|
SANDBOXED_COMPILES_SIBLING_CONTAINERS: 'true'
|
||||||
|
|
||||||
## Works with test LDAP server shown at bottom of docker compose
|
## Works with test LDAP server shown at bottom of docker compose
|
||||||
# OVERLEAF_LDAP_URL: 'ldap://ldap:389'
|
# OVERLEAF_LDAP_URL: 'ldap://ldap:389'
|
||||||
|
|||||||
@@ -131,9 +131,7 @@ const allowedVars = Joi.object(
|
|||||||
'GIT_BRIDGE_HOST',
|
'GIT_BRIDGE_HOST',
|
||||||
'GIT_BRIDGE_PORT',
|
'GIT_BRIDGE_PORT',
|
||||||
'V1_HISTORY_URL',
|
'V1_HISTORY_URL',
|
||||||
'DOCKER_RUNNER',
|
|
||||||
'SANDBOXED_COMPILES',
|
'SANDBOXED_COMPILES',
|
||||||
'SANDBOXED_COMPILES_SIBLING_CONTAINERS',
|
|
||||||
'ALL_TEX_LIVE_DOCKER_IMAGE_NAMES',
|
'ALL_TEX_LIVE_DOCKER_IMAGE_NAMES',
|
||||||
'OVERLEAF_TEMPLATES_USER_ID',
|
'OVERLEAF_TEMPLATES_USER_ID',
|
||||||
'OVERLEAF_NEW_PROJECT_TEMPLATE_LINKS',
|
'OVERLEAF_NEW_PROJECT_TEMPLATE_LINKS',
|
||||||
@@ -196,10 +194,7 @@ function setVarsDockerCompose({ pro, vars, version, withDataDir }) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (cfg.services.sharelatex.environment.SANDBOXED_COMPILES === 'true') {
|
||||||
cfg.services.sharelatex.environment
|
|
||||||
.SANDBOXED_COMPILES_SIBLING_CONTAINERS === 'true'
|
|
||||||
) {
|
|
||||||
cfg.services.sharelatex.environment.SANDBOXED_COMPILES_HOST_DIR =
|
cfg.services.sharelatex.environment.SANDBOXED_COMPILES_HOST_DIR =
|
||||||
PATHS.SANDBOXED_COMPILES_HOST_DIR
|
PATHS.SANDBOXED_COMPILES_HOST_DIR
|
||||||
cfg.services.sharelatex.environment.TEX_LIVE_DOCKER_IMAGE =
|
cfg.services.sharelatex.environment.TEX_LIVE_DOCKER_IMAGE =
|
||||||
|
|||||||
@@ -10,9 +10,7 @@ const LABEL_TEX_LIVE_VERSION = 'TeX Live version'
|
|||||||
|
|
||||||
describe('SandboxedCompiles', function () {
|
describe('SandboxedCompiles', function () {
|
||||||
const enabledVars = {
|
const enabledVars = {
|
||||||
DOCKER_RUNNER: 'true',
|
|
||||||
SANDBOXED_COMPILES: 'true',
|
SANDBOXED_COMPILES: 'true',
|
||||||
SANDBOXED_COMPILES_SIBLING_CONTAINERS: 'true',
|
|
||||||
ALL_TEX_LIVE_DOCKER_IMAGE_NAMES: '2023,2022',
|
ALL_TEX_LIVE_DOCKER_IMAGE_NAMES: '2023,2022',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -98,14 +98,15 @@ if (process.env.ALLOWED_COMPILE_GROUPS) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (process.env.DOCKER_RUNNER) {
|
if ((process.env.DOCKER_RUNNER || process.env.SANDBOXED_COMPILES) === 'true') {
|
||||||
let seccompProfilePath
|
|
||||||
module.exports.clsi = {
|
module.exports.clsi = {
|
||||||
dockerRunner: process.env.DOCKER_RUNNER === 'true',
|
dockerRunner: true,
|
||||||
docker: {
|
docker: {
|
||||||
runtime: process.env.DOCKER_RUNTIME,
|
runtime: process.env.DOCKER_RUNTIME,
|
||||||
image:
|
image:
|
||||||
process.env.TEXLIVE_IMAGE || 'quay.io/sharelatex/texlive-full:2017.1',
|
process.env.TEXLIVE_IMAGE ||
|
||||||
|
process.env.TEX_LIVE_DOCKER_IMAGE ||
|
||||||
|
'quay.io/sharelatex/texlive-full:2017.1',
|
||||||
env: {
|
env: {
|
||||||
HOME: '/tmp',
|
HOME: '/tmp',
|
||||||
CLSI: 1,
|
CLSI: 1,
|
||||||
@@ -142,6 +143,7 @@ if (process.env.DOCKER_RUNNER) {
|
|||||||
process.exit(1)
|
process.exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let seccompProfilePath
|
||||||
try {
|
try {
|
||||||
seccompProfilePath = Path.resolve(__dirname, '../seccomp/clsi-profile.json')
|
seccompProfilePath = Path.resolve(__dirname, '../seccomp/clsi-profile.json')
|
||||||
module.exports.clsi.docker.seccomp_profile = JSON.stringify(
|
module.exports.clsi.docker.seccomp_profile = JSON.stringify(
|
||||||
@@ -177,7 +179,22 @@ if (process.env.DOCKER_RUNNER) {
|
|||||||
module.exports.path.synctexBaseDir = () => '/compile'
|
module.exports.path.synctexBaseDir = () => '/compile'
|
||||||
|
|
||||||
module.exports.path.sandboxedCompilesHostDirCompiles =
|
module.exports.path.sandboxedCompilesHostDirCompiles =
|
||||||
|
process.env.SANDBOXED_COMPILES_HOST_DIR_COMPILES ||
|
||||||
|
process.env.SANDBOXED_COMPILES_HOST_DIR ||
|
||||||
process.env.COMPILES_HOST_DIR
|
process.env.COMPILES_HOST_DIR
|
||||||
|
if (!module.exports.path.sandboxedCompilesHostDirCompiles) {
|
||||||
|
throw new Error(
|
||||||
|
'SANDBOXED_COMPILES enabled, but SANDBOXED_COMPILES_HOST_DIR_COMPILES not set'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
module.exports.path.sandboxedCompilesHostDirOutput =
|
module.exports.path.sandboxedCompilesHostDirOutput =
|
||||||
|
process.env.SANDBOXED_COMPILES_HOST_DIR_OUTPUT ||
|
||||||
process.env.OUTPUT_HOST_DIR
|
process.env.OUTPUT_HOST_DIR
|
||||||
|
if (!module.exports.path.sandboxedCompilesHostDirOutput) {
|
||||||
|
// TODO(das7pad): Enforce in a future major version of Server Pro.
|
||||||
|
// throw new Error(
|
||||||
|
// 'SANDBOXED_COMPILES enabled, but SANDBOXED_COMPILES_HOST_DIR_OUTPUT not set'
|
||||||
|
// )
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user