diff --git a/src/docker-manager.test.ts b/src/docker-manager.test.ts index 8330509a..a908d0ba 100644 --- a/src/docker-manager.test.ts +++ b/src/docker-manager.test.ts @@ -1563,7 +1563,7 @@ describe('docker-manager', () => { const result = generateDockerCompose(configWithProxy, mockNetworkConfigWithProxy); const agent = result.services.agent; const env = agent.environment as Record; - expect(env.OPENAI_BASE_URL).toBe('http://api-proxy:10000'); + expect(env.OPENAI_BASE_URL).toBe('http://172.30.0.30:10000'); }); it('should configure HTTP_PROXY and HTTPS_PROXY in api-proxy to route through Squid', () => { @@ -1580,7 +1580,7 @@ describe('docker-manager', () => { const result = generateDockerCompose(configWithProxy, mockNetworkConfigWithProxy); const agent = result.services.agent; const env = agent.environment as Record; - expect(env.ANTHROPIC_BASE_URL).toBe('http://api-proxy:10001'); + expect(env.ANTHROPIC_BASE_URL).toBe('http://172.30.0.30:10001'); }); it('should set both BASE_URL variables when both keys are provided', () => { @@ -1588,8 +1588,8 @@ describe('docker-manager', () => { const result = generateDockerCompose(configWithProxy, mockNetworkConfigWithProxy); const agent = result.services.agent; const env = agent.environment as Record; - expect(env.OPENAI_BASE_URL).toBe('http://api-proxy:10000'); - expect(env.ANTHROPIC_BASE_URL).toBe('http://api-proxy:10001'); + expect(env.OPENAI_BASE_URL).toBe('http://172.30.0.30:10000'); + expect(env.ANTHROPIC_BASE_URL).toBe('http://172.30.0.30:10001'); }); it('should not set OPENAI_BASE_URL in agent when only Anthropic key is provided', () => { @@ -1598,7 +1598,7 @@ describe('docker-manager', () => { const agent = result.services.agent; const env = agent.environment as Record; expect(env.OPENAI_BASE_URL).toBeUndefined(); - expect(env.ANTHROPIC_BASE_URL).toBe('http://api-proxy:10001'); + expect(env.ANTHROPIC_BASE_URL).toBe('http://172.30.0.30:10001'); }); it('should not set ANTHROPIC_BASE_URL in agent when only OpenAI key is provided', () => { @@ -1607,7 +1607,7 @@ describe('docker-manager', () => { const agent = result.services.agent; const env = agent.environment as Record; expect(env.ANTHROPIC_BASE_URL).toBeUndefined(); - expect(env.OPENAI_BASE_URL).toBe('http://api-proxy:10000'); + expect(env.OPENAI_BASE_URL).toBe('http://172.30.0.30:10000'); }); }); }); diff --git a/src/docker-manager.ts b/src/docker-manager.ts index c4c2d239..d9533158 100644 --- a/src/docker-manager.ts +++ b/src/docker-manager.ts @@ -967,13 +967,14 @@ export function generateDockerCompose( environment.AWF_API_PROXY_IP = networkConfig.proxyIp; // Set environment variables in agent to use the proxy + // Use IP address instead of hostname to avoid DNS resolution issues if (config.openaiApiKey) { - environment.OPENAI_BASE_URL = `http://api-proxy:10000`; - logger.debug('OpenAI API will be proxied through sidecar at http://api-proxy:10000'); + environment.OPENAI_BASE_URL = `http://${networkConfig.proxyIp}:10000`; + logger.debug(`OpenAI API will be proxied through sidecar at http://${networkConfig.proxyIp}:10000`); } if (config.anthropicApiKey) { - environment.ANTHROPIC_BASE_URL = `http://api-proxy:10001`; - logger.debug('Anthropic API will be proxied through sidecar at http://api-proxy:10001'); + environment.ANTHROPIC_BASE_URL = `http://${networkConfig.proxyIp}:10001`; + logger.debug(`Anthropic API will be proxied through sidecar at http://${networkConfig.proxyIp}:10001`); } logger.info('API proxy sidecar enabled - API keys will be held securely in sidecar container'); diff --git a/src/types.ts b/src/types.ts index 48d167e6..0fe3ee08 100644 --- a/src/types.ts +++ b/src/types.ts @@ -391,13 +391,13 @@ export interface WrapperConfig { * - Proxies requests to LLM providers * * The sidecar exposes two endpoints accessible from the agent container: - * - http://api-proxy:10000 - OpenAI API proxy (for Codex) - * - http://api-proxy:10001 - Anthropic API proxy (for Claude) + * - http://172.30.0.30:10000 - OpenAI API proxy (for Codex) + * - http://172.30.0.30:10001 - Anthropic API proxy (for Claude) * * When the corresponding API key is provided, the following environment * variables are set in the agent container: - * - OPENAI_BASE_URL=http://api-proxy:10000 (set when OPENAI_API_KEY is provided) - * - ANTHROPIC_BASE_URL=http://api-proxy:10001 (set when ANTHROPIC_API_KEY is provided) + * - OPENAI_BASE_URL=http://172.30.0.30:10000 (set when OPENAI_API_KEY is provided) + * - ANTHROPIC_BASE_URL=http://172.30.0.30:10001 (set when ANTHROPIC_API_KEY is provided) * * API keys are passed via environment variables: * - OPENAI_API_KEY - Optional OpenAI API key for Codex