Dev/Docker

    Flask API Server Dockerized

    요약 Docker 엔진을 이용하여 Flask API 서버를 간단하게 실행해 봅니다. Hello World API 생성 테스트를 위해 아래와 같이 Hello World API를 생성해 줍니다. 루트 폴더의 app.py 파일 입니다. from flask import Flask, request app = Flask(__name__) @app.route('/hello') def hello(): return 'Hello, Flask API Server on Docker Container' if __name__ == '__main__': app.run() Flask API Dockerfile 정의 FROM Python-slim 이미지를 사용하여 도커 이미지 용량을 확보합니다. COPY 소스 코드들을 컨테이너의 /a..

    Docker-Compose를 활용한 NestJS Dockerized (Mac M1)

    요약 Mac M1 환경에서 Docker Compose 를 이용하여 NestJS 개발 환경을 도커 컨테이너로 실행합니다. docker-compose.yaml 파일 생성 version 는 docker compose의 버전을 의미합니다. services 는 해당 docker compose 사용될 docker service를 정의하는 영역을 의미합니다. api 는 docker service의 이름을 정의합니다. build 해당 서비스를 Container로 빌드할 때 필요한 옵션들을 정의합니다. dockerfile 해당 서비스를 빌드할 때 Dockerfile를 참고합니다. 이때, 해당 Dockerfile에 대한 경로를 정의합니다. context 는 docker build 명령을 실행할 경로를 뜻합니다. ports..

    Docker-Compose를 활용한 MySQL 8.0.28 구축 (Mac M1)

    요약 Mac M1 환경에서 Docker Compose 를 이용하여 MySQL 8.0.28 데이터베이스 서버를 구축합니다. 폴더 구조 생성 프로젝트 루트 경로에 mysql/sqls 폴더를 생성합니다. 프로젝트 루트 경로에 docker-compose.yaml 파일을 생성합니다. mysql 폴더 경로에 my.cnf, Dockerfile 파일을 생성합니다. mysql/sqls 폴더 경로에 init.sql 파일을 생성합니다. Dockerfile 파일 정의 M1 칩을 고려하여 linux/amd64 로 플랫폼을 설정합니다. mysql 이미지를 불러오며 버전은 8.0.28를 사용합니다. mysql 컨테이너에 로컬에 있는 my.cnf 파일을 복사하여 붙여넣습니다. FROM --platform=linux/amd64 mys..