[실습] OpenAI 에이전트 도커 워크삽 (7)-도커 컨테이너 실행
지난 번 윈도우 환경에서 리눅스 이미지 빌드 실습과 분석을 했다. 그렇다면 이번에는 도커 컨테이너를 실행하는 실습이다.
1. 실습 9 - 도커 컨테이너 실행
도커 컨테이너 실행은 run-container.ps1 파일만 실행한다.
.\scripts\run-container.ps1
run-container.ps1 파일 내부를 분석하면 다음과 같다.
# PowerShell 명령 실행 중 오류가 발생하면스크립트를 즉시 중단하도록 설정한다.
$ErrorActionPreference = "Stop"
# 현재 PowerShell 환경에 OPENAI_API_KEY가 설정되어 있는지 확인한다.
if (-not $env:OPENAI_API_KEY) {
# API 키가 설정되어 있지 않으면 오류를 발생시키고 스크립트를 중단한다.
#
# 문자열 안의 백틱(`)은 PowerShell이 $env를 변수로 해석하지 않고
# 설정 예시를 문자 그대로 출력하도록 한다.
throw "OPENAI_API_KEY is not set. Example: `$env:OPENAI_API_KEY='sk-...'"
}
# 현재 PowerShell 환경에 OPENAI_DEFAULT_MODEL이 설정되어 있는지 확인한다.
if (-not $env:OPENAI_DEFAULT_MODEL) {
# 모델 환경변수가 없다면 기본 모델을 설정한다.
$env:OPENAI_DEFAULT_MODEL = "gpt-5.6-luna"
}
# openai-agents-workshop:1.0 이미지로 컨테이너를 생성하고 실행한다.
docker run `
# 컨테이너가 종료되면 컨테이너를 자동으로 삭제한다.
# Docker 이미지는 삭제하지 않는다.
--rm `
# 실행할 컨테이너의 이름을 지정한다.
--name openai-agents-workshop-container `
# 호스트의 8010번 포트를 컨테이너의 8000번 포트에 연결한다.
#
# 브라우저에서는 http://localhost:8010으로 접속한다.
-p 8010:8000 `
# 현재 PowerShell에 설정된 OpenAI API 키를
# 컨테이너의 OPENAI_API_KEY 환경변수로 전달한다.
-e OPENAI_API_KEY=$env:OPENAI_API_KEY `
# 현재 PowerShell에 설정된 모델 이름을
# 컨테이너의 OPENAI_DEFAULT_MODEL 환경변수로 전달한다.
-e OPENAI_DEFAULT_MODEL=$env:OPENAI_DEFAULT_MODEL `
# 실행할 Docker 이미지의 이름과 태그를 지정한다.
openai-agents-workshop:1.0
위의 소스 파일에서 도커를 실행하는 내부 핵심 명령은 다음과 같다.
docker run --rm `
-p 8010:8000 `
-e OPENAI_API_KEY=$env:OPENAI_API_KEY `
-e OPENAI_DEFAULT_MODEL=$env:OPENAI_DEFAULT_MODEL `
openai-agents-workshop:1.0
그리고 도커 실행이 잘 동작하는 지 다른 파워셀에서 테스트한다.
.\scripts\test-api.ps1
웹 브라우저에서도 다음과 같이 확인한다.
http://localhost:8010/docs
2. 윈도우 네이티브 실행과 도커 컨테이너 실행 비교
| 항목 | Windows Native | Docker Container |
|---|---|---|
| Python | Windows Python | Linux Python |
| 가상환경 | .venv |
image layer |
| Source path | C:\... |
/app |
| 실행 | uvicorn ... |
Docker CMD |
| API Key | PowerShell env | docker run -e |
| 배포 재현성 | 환경 영향 있음 | 높음 |
핵심은 같은 Python 앱을 먼저 Windows에서 빠르게 디버깅하고, 배포 시 Linux image로 생성한다는 점이다.
댓글남기기