jsmyung-datansoft / kokex

A Korean Keywords Extractor with Syntactic Analysis
MIT License
3 stars 1 forks source link

도커 이미지 빌드 및 도커 허브 업로드 #5

Closed jsmyung-datansoft closed 3 years ago

jsmyung-datansoft commented 3 years ago

3과 연관되어 있습니다.

jintaekimmm commented 3 years ago

안녕하세요 박사님

Dockerfile 몇개 작성해봤습니다. 필요하신 부분 사용하시면 될 것 같아요

참고사항

테스트에 사용한 Build Command

docker build --no-cache -f bin/docker/Dockerfile -t kokex-test:1.0 .

1. python-macab Base 이미지

python3.7 기반에 mecab만 설치한 Dockerfile 입니다

해당 파일로 빌드한 이미지는 아래에서 가져와 테스트 해보실 수 있씁니다 docker pull 6199/mecab-base-py37:latest

Dockerfile

FROM python:3.7-slim

# install
RUN apt-get update \
&& apt-get install apt-utils python3-dev curl gcc g++ make git tzdata -y

RUN ["/bin/bash", "-c", "bash <(curl -s https://raw.githubusercontent.com/konlpy/konlpy/master/scripts/mecab.sh)"]

CMD ["python"]

2. [1. python-macab Base] 기반으로 작성한 API Dockerfile

API 부분만 Dockerfile로 작성해서 바로 kokex api를 사용할 수 있도록 작성한 내용입니다

Dockerfile

FROM 6199/mecab-base-py37:latest

COPY ../../kokex /kokex
COPY requirements.txt /kokex
ENV HOME=/kokex

# set environment variables
ENV PORT=8081

# install
WORKDIR ${HOME}
RUN apt-get update \
&& apt-get install apt-utils tzdata -y  \
&& pip install --no-cache-dir -r requirements.txt \
&& pip install kokex

EXPOSE ${PORT}

CMD uvicorn server.server:app --host 0.0.0.0 --port ${PORT}

3. python 기반 mecab + kokex 설치

python:3.7 기반에 mecab과 kokex api를 설치하도록 작성한 내용입니다

Dockerfile

FROM python:3.7-slim

COPY ../../kokex /kokex
COPY requirements.txt /kokex
ENV HOME=/kokex

# set environment variables
ENV PORT=8081

# install
WORKDIR ${HOME}
RUN apt-get update \
&& apt-get install apt-utils python3-dev curl gcc g++ make git tzdata -y  \
&& pip install --no-cache-dir -r requirements.txt \
&& pip install kokex
RUN ["/bin/bash", "-c", "bash <(curl -s https://raw.githubusercontent.com/konlpy/konlpy/master/scripts/mecab.sh)"]

EXPOSE ${PORT}

CMD uvicorn server.server:app --host 0.0.0.0 --port ${PORT}
jsmyung-datansoft commented 3 years ago

@99-66 오오~~ 감사합니다. 수요일 이후에 작업 시간이 생길 것 같아서 벼르고 있었는데 덕분에 시간을 많이 줄일 수 있을 것 같습니다! 최우선 순위로 진행하겠습니다!

jsmyung-datansoft commented 3 years ago

@99-66 세번째 방법으로 이미지 빌드해서 도커허브 올리는 부분까지 덕분에 수월하게 했습니다. 감사합니다!!

jsmyung-datansoft commented 3 years ago

추후 수정 필요한 사항

  1. 빌드, 배포할때마다 mecab 설치를 하느라고 느린것 해결
  2. 이미지 푸시하기 전에 endpoint 테스트 추가