[Docker compose - Postgres 설정] 부팅 이슈 해결하기 (Internship : Infra)
·
DevOps/Docker
환경 일관성과 데이터 관리의 용이성 때문에 온프레미스로 구현되고 있는 서비스의 서버에 database 를 Docker 를 이용하여 배포하고 운영하고 있습니다. 해당 Postgres 의 컴포즈 파일을 설정하다가, 계속적인 부팅 이슈가 발생하길래 그것을 수정하여 개선해보려 합니다. postgres: image: ${POSTGRES_IMAGE:-postgres:15} container_name: ${POSTGRES_SERVICE_NAME:-postgres} env_file: .env.postgres ports: - "${POSTGRES_PORT:-5432}:5432" volumes: - ${ROOT_HOST}/postgres-data:/var/lib/postg..
[docker-compose]온프렘 도커 배포 실전 삽질기 (네트워크, 쿠키, 헬스체크 해결편)
·
DevOps/Docker
[실무 기록] 온프렘 도커 배포 실전 삽질기 (네트워크, 쿠키, 헬스체크 해결편)최근 온프렘(On-premise) 서버 환경에서 여러 마이크로서비스를 Docker Compose로 묶어 배포하며 겪은 시행착오를 정리합니다. 구성 자체는 표준적이었으나, 실제 운영 환경으로 넘어가며 네트워크 통신과 인증 유지 부분에서 예상치 못한 이슈들이 있었습니다.1. 전체 서비스 아키텍처 구성모든 서비스는 docker-compose.yml 하나로 관리하며, 동일한 Docker 네트워크(keural-network) 내에서 통신하도록 설계했습니다.Frontend: Next.jsBackend API: Spring Boot (api)AI Backend: FastAPI (fastapi)Database: PostgreSQLVecto..
[docker-compose]온프레미스 환경에서 Docker Compose로 서비스 구성하기
·
DevOps/Docker
이번 글은 온프레미스(on-premise) 환경에서 Docker Compose를 사용해 여러 서비스를 하나의 시스템으로 구성하면서 겪었던 실제 시행착오와 설계 결정을 정리한 기록입니다! 구성한 시스템은 다음과 같음.Next.js (프론트엔드)Spring Boot APIFastAPI (AI / OCR / Chat)PostgreSQLQdrant (Vector DB)vLLM (GPU 기반 LLM Inference)특히 이번 환경은 온디맨드 서버 제공형이라서버가 항상 켜져 있지 않고필요할 때만 기동했다가 종료되며별도 로드밸런서(Nginx 등)를 두지 않는 구조라는 제약이 있었음. 이 글에서는 아래 내용을 중심으로 정리하려 합니다.포트는 어떻게 열고 맞췄는지Docker 네트워크를 왜 하나로 묶었는지Nginx 없..
[Docker] 실행 방법
·
DevOps/Docker
Docker SDK가상환경을 만든 후, pip install docker 입력docker 데스크탑을 켜서 docker 실행 후가상환경 접속 해 python3 [파일명] 실행한다. app.py#Flask 와 Redis를 이용한 간단한 웹 서버를 구현한 python 파일from flask import flaskfrom redis import Redis, RedisErrorimport osimport socketredis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)app = Flask(__name__)@app.route(" /")def hello(): try: visits = redis.incr ("co..
[docker] 개념 정리
·
DevOps/Docker
컨테이너(Container)컨테이너 기술은 패키징 기술이다.애플리케이션 실행에 필요한 환경을 하나로 묶어, 어디서든 동일하게 실행되도록 만든다.컨테이너 기술의 핵심 특징은 다음과 같다.샌드박스화된 런타임 환경애플리케이션 프로세스가 보호된 영역에서 동작하며, 다른 프로세스에 영향을 끼치지 않는 최소 실행 환경이다.배포가 쉬움(패키징된 환경)애플리케이션 동작에 필요한 필수 환경을 모두 포함하므로 배포가 단순하다.운영체제(OS)로부터의 독립과 한계애플리케이션을 운영체제로부터 분리하지만, 컨테이너의 OS는 호스트 OS에 종속적이므로타 OS 기반 컨테이너를 그대로 구동할 수 없다.높은 성능게스트 OS를 구동하는 오버헤드가 없기 때문에 성능이 좋다. 컨테이너의 OS는 호스트 OS에 종속적이다.호스트 OS에 따른 컨..
[BuildX & 서버 이전] FastAPI + PaddleOCR 서버 이전기: "exec format error"와 Docker Buildx 완벽 가이드
·
DevOps/Docker
PaddleOCR과 같은 딥러닝 라이브러리는 C++로 컴파일된 바이너리에 의존하기 때문에 CPU 아키텍처(x86 vs ARM)에 매우 민감합니다. 이 점을 강조하며 docker buildx가 왜 필요한지 실무에서 발생했던 문제 상황을 어떻게 해결했는지 정리했습니다. 최근 회사에서 운영 중인 RAG(Retrieval-Augmented Generation) 서비스를 위해 FastAPI와 PaddleOCR을 사용한 OCR 서버를 Docker 컨테이너로 띄워 사용하고 있었습니다.서비스가 안정화되면서 서버를 이전해야 할 일이 생겼는데, 여기서 예상치 못한 치명적인 문제가 발생했습니다."기존 서버(Intel/AMD)에서 잘 돌아가던 도커 이미지가, 새 서버(ARM/AWS Graviton/Mac M1 등)에서는 실행..