안녕하세요. 이번 시간에는 docker의 볼륨 (volume)에 대해 간단하게 알아보겠습니다. 먼저 제 fastapi 프로젝트 구조는 위와 같습니다. 단순화 하기 위해 main.py와 test_router.py만 구현해 놓았습니다. 먼저 main.py입니다. test_router의 router만 추가하였습니다. 다음에, test_router에는, get /test만 있습니다. 간단하게 api가 호출이 되면, 204 status code만 돌려줍니다. 서버 자체는 굉장히 간단해서 따로 설명을 드리지 않아도 되겠네요. Dockerfile부터 보겠습니다. 필요한 패키지들 깐 다음에, 마지막에 cmd로 서버를 실행시킵니다. 8000번 포트를 열어놓았습니다. 다음에 docker-compose.yml 부분입니다. ..
도커 검색 결과
postgresql를 docker로 올릴 때, 데이터베이스들을 초기화 할 수 있습니다. 이 방법을 알아보겠습니다. 그 전에 volumes에 대해 간단히 알아봅시다. 먼저, 폴더 구조는 아래와 같습니다. docker-compose.yml 파일이 있고, ddl 폴더 밑에 schema.sql이 있습니다. 이제 밑에 있는 compose 파일을 보겠습니다. 11 ~ 15번째 줄이 중요합니다. 11 ~ 13번째 줄부터 해석해 봅시다. 문서를 보면 12 ~ 13번째 줄은 VOLUME:CONTAINER_PATH임을 알 수 있어요. CONTAINER_PATH는 VOLUME이 마운트 되는 경로를 의미합니다. 실제로 처음 postgres가 초기화 되고 볼륨이 만들어 질 때 초기화 되게 하기 위해 13번째 줄을 넣었는데요. ..
안녕하세요. 이번 시간에는 docker에서 expose 명령어에 대해서 알아보겠습니다. 현재 제 fastapi 프로젝트 구조입니다. docker-compose가 추가되었고, models.py와 db.py가 추가되었습니다. psycopg2-binary와 sqlalchemy가 새로 설치되었습니다. 실습하기 위한 프로젝트 세팅을 해 봅시다. 먼저 ddl/schema.sql입니다. public.test가 없는 경우에만 생성하는 DDL 문입니다. title을 pk로 걸어놓았습니다. db.py입니다. 데이터베이스와 관련된 정보들을 관리합니다. 저 정보들에 대한 것은 fastapi를 공부할 때 다시 언급해 보도록 하겠습니다. 여기에서 중요한 것은 DATABASE_URL이라는 환경 변수를 가져와서, 엔진을 생성하는 데..
안녕하세요. 이번 시간에는 도커 publish port에 대해 알아봅시다. 먼저 간단한 fastapi 프로젝트를 생성해 보겠습니다. 공식 문서에는 셋팅과, 간단한 api 만드는 방법에 대해 각각 링크1과 링크2에서 설명하고 있어요. 이를 토대로 프로젝트를 잡아 봅시다. 프로젝트 구조입니다. 루트 폴더에 Dockerfile과 .dockerignore와 requirements.txt가 있습니다. requirements.txt에는 fastapi를 셋팅하고 난 후에, pip freeze > requirements.txt를 이용해서 생성한 것입니다. 다음에 app 패키지가 있는데요. 이 안에 main.py가 있어요. main.py를 보시면, 이 코드만 있어요. 이는 root_url에 접근했을 때, "Hello f..
이전 글에서, django demo 프로젝트를 컨테이너에 말아보았습니다. 이번 시간에는 환경 변수를 컨테이너 안에 넣어보도록 하겠습니다. [관련글] dockerignore 파일이 무엇을 하는 것일까요? 프로젝트 구조는 이전 글과 크게 달라진 것이 없습니다. 루트 폴더에 .dockerignore랑 스크립트 파일, Dockerfile, requirements 파일 등이 있네요. 그리고 test_env라는 것이 있는데요. 변수명=값 형식으로 적습니다. 예를 들어, 위 예제는 CHO가 3이고, GA가 5이고, HUI가 10입니다. 이것을 build 해 보겠습니다. sample이라는 이름으로 build 합니다. 그리고 run을 해 보겠습니다. 그런데 어떤 옵션을 더 넣어야 할까요? docker run --help..
최근댓글