diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 92ec878..1495d9e 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -30,6 +30,7 @@ services: - /var/run/docker.sock:/var/run/docker.sock - ./logs:/app/logs - ./config:/app/config + - ./quests:/app/quests:ro env_file: - .env - .env.prod @@ -40,6 +41,7 @@ services: - TRUSTED_PROXIES=${TRUSTED_PROXIES} - BACKEND_URL=http://backend:3000 - BASE_URL=${BASE_URL} + - HOST_PROJECT_ROOT=${PWD} - GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID} - GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET} - GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID} diff --git a/server/src/config.ts b/server/src/config.ts index ea258af..4be7e8d 100644 --- a/server/src/config.ts +++ b/server/src/config.ts @@ -76,6 +76,7 @@ function createConfig() { defaultImage: get('QUEST_IMAGE', 'linuxodyssey/quest-base'), imagePrefix: get('DOCKER_PREFIX', 'linuxodyssey/quest-'), mountQuest: process.env.MOUNT_QUEST === 'true', + hostProjectRoot: get('HOST_PROJECT_ROOT', projectRoot), keypairPath, keypair, }, @@ -94,6 +95,7 @@ function createConfig() { function getProjectRoot(): string { const filename = fileURLToPath(import.meta.url) const root = path.join(path.dirname(filename), '..', '..') + console.log('Project root:', root) return root } diff --git a/server/src/containers/docker.ts b/server/src/containers/docker.ts index 1b45aac..5714cc1 100644 --- a/server/src/containers/docker.ts +++ b/server/src/containers/docker.ts @@ -32,9 +32,7 @@ export async function createContainer( questId: string, imageId: string ): Promise { - let binds: string[] = [ - // `${config.docker.hostProjectRoot}/config/ssh_key.pub:/ssh_key.pub:ro`, - ] + let binds: string[] = [] if (await questHomeExists(questId)) { logger.info('Mounting quest home', questId) binds.push( @@ -49,7 +47,6 @@ export async function createContainer( ] } const option = newContainerOptions(name, imageId, { binds }) - console.log('Creating container', option) await createNetworkIfNotExists(config.docker.network) return engine.createContainer(option) } @@ -68,9 +65,7 @@ async function createNetworkIfNotExists(network: string) { async function questHomeExists(imageId: string) { try { - const stat = await fs.stat( - `${config.docker.hostProjectRoot}/quests/${imageId}/home` - ) + const stat = await fs.stat(`${config.projectRoot}/quests/${imageId}/home`) return stat.isDirectory() } catch { return false