// https://github.com/apocas/dockerode/issues/357
docker.modem.followProgress(stream, onFinished)
- /**
- *
- * @param err
- */
function onFinished(err) {
if (!err) {
resolve(true)
},
Env: [
`BRANCH=${branch}`,
+ 'APCU=1',
],
})
await container.start()
await runExec(container, ['php', 'occ', 'config:system:set', 'default_locale', '--value', 'en_US'], true)
await runExec(container, ['php', 'occ', 'config:system:set', 'force_locale', '--value', 'en_US'], true)
await runExec(container, ['php', 'occ', 'config:system:set', 'enforce_theme', '--value', 'light'], true)
+
// Speed up test and make them less flaky. If a cron execution is needed, it can be triggered manually.
await runExec(container, ['php', 'occ', 'background:cron'], true)
+ // Checking apcu
+ const distributed = await runExec(container, ['php', 'occ', 'config:system:get', 'memcache.distributed'])
+ const local = await runExec(container, ['php', 'occ', 'config:system:get', 'memcache.local'])
+ const hashing = await runExec(container, ['php', 'occ', 'config:system:get', 'hashing_default_password'])
+
+ console.log('ββ Checking APCu configuration... π')
+ if (!distributed.trim().includes('\\OC\\Memcache\\APCu')
+ || !local.trim().includes('\\OC\\Memcache\\APCu')
+ || !hashing.trim().includes('true')) {
+ console.log('ββ APCu is not properly configured π')
+ throw new Error('APCu is not properly configured')
+ }
+ console.log('β ββ OK !')
+
+ // Saving DB state
+ console.log('ββ Creating init DB snapshot...')
+ await runExec(container, ['cp', '/var/www/html/data/owncloud.db', '/var/www/html/data/owncloud.db-init'], true)
+
console.log('ββ Nextcloud is now ready to use π')
}
command: string[],
verbose = false,
user = 'www-data',
-) {
+): Promise<string> {
const exec = await container.exec({
Cmd: command,
AttachStdout: true,
})
return new Promise((resolve, reject) => {
+ let output = ''
exec.start({}, (err, stream) => {
if (err) {
reject(err)
if (stream) {
stream.setEncoding('utf-8')
stream.on('data', str => {
+ output += str
if (verbose && str.trim() !== '') {
console.log(`ββ ${str.trim().replace(/\n/gi, '\nββ ')}`)
}
})
- stream.on('end', resolve)
+ stream.on('end', () => resolve(output))
}
})
})