feat(appstore): add service volumes and published ports
This commit is contained in:
@@ -227,6 +227,7 @@ export class ManagedDcRouterManager {
|
||||
const image = this.getImage();
|
||||
const token = await this.getAdminToken();
|
||||
const dataDir = await this.getAbsoluteDataDir();
|
||||
await this.writeManagedConfig(dataDir);
|
||||
|
||||
await this.oneboxRef.docker.pullImage(image);
|
||||
|
||||
@@ -234,6 +235,7 @@ export class ManagedDcRouterManager {
|
||||
Image: image,
|
||||
Env: [
|
||||
`DCROUTER_BASE_DIR=${internalBaseDir}`,
|
||||
`DCROUTER_CONFIG_PATH=${internalBaseDir}/managed-config.json`,
|
||||
`DCROUTER_ADMIN_API_TOKEN=${token}`,
|
||||
'DCROUTER_ADMIN_API_TOKEN_NAME=Onebox Managed Admin Token',
|
||||
],
|
||||
@@ -268,6 +270,26 @@ export class ManagedDcRouterManager {
|
||||
logger.success(`Managed dcrouter container started: ${response.body.Id}`);
|
||||
}
|
||||
|
||||
private async writeManagedConfig(dataDirArg: string): Promise<void> {
|
||||
const configPath = plugins.path.join(dataDirArg, 'managed-config.json');
|
||||
try {
|
||||
const existingConfig = await Deno.readTextFile(configPath);
|
||||
JSON.parse(existingConfig);
|
||||
return;
|
||||
} catch (error) {
|
||||
if (!(error instanceof Deno.errors.NotFound)) {
|
||||
throw new Error(`Managed dcrouter config exists but is not valid JSON: ${getErrorMessage(error)}`);
|
||||
}
|
||||
}
|
||||
|
||||
const config = {
|
||||
smartProxyConfig: {
|
||||
routes: [],
|
||||
},
|
||||
};
|
||||
await Deno.writeTextFile(configPath, JSON.stringify(config, null, 2));
|
||||
}
|
||||
|
||||
private async getExistingContainer(): Promise<any | null> {
|
||||
const filters = encodeURIComponent(JSON.stringify({ name: [containerName] }));
|
||||
const response = await this.dockerClient!.request('GET', `/containers/json?all=true&filters=${filters}`, {});
|
||||
|
||||
Reference in New Issue
Block a user