Closed jsmyung-datansoft closed 3 years ago
mecab 설치 시간 오래걸리는 거에 대한 추가적인 아이디어를 덧붙이자면(웬지 아실 것 같지만) python + mecab 이미지(이하 베이스 이미지)만 따로 만들어서 관리하고 kokex 테스트, 빌드/배포시에는 베이스 이미지를 쓰시는 것도 괜찮을 것 같습니다
베이스 이미지는 따로 레포지토리 생성해서 관리하면 빌드도 별도로 관리하실 수 있을 거에요 제가 테스트한다고 이런식으로 https://github.com/99-66/mecab-base-py37 만들어서 베이스 생성했었거든요
한번 고려해보시는 것도 나쁘지 않을 것 같습니다
5 작업하시느라 고생 많으셨습니다!
mecab 설치 시간 오래걸리는 거에 대한 추가적인 아이디어를 덧붙이자면(웬지 아실 것 같지만) python + mecab 이미지(이하 베이스 이미지)만 따로 만들어서 관리하고 kokex 테스트, 빌드/배포시에는 베이스 이미지를 쓰시는 것도 괜찮을 것 같습니다
5 여기서 1. 으로 작성했던 게 베이스 이미지 만들었던거고
- 가 베이스 이미지 써서 kokex를 빌드했던 거라..
베이스 이미지는 따로 레포지토리 생성해서 관리하면 빌드도 별도로 관리하실 수 있을 거에요 제가 테스트한다고 이런식으로 https://github.com/99-66/mecab-base-py37 만들어서 베이스 생성했었거든요
한번 고려해보시는 것도 나쁘지 않을 것 같습니다
@99-66 따로 레포지토리 생성하는것 너무 좋은 방법이구요! Dockerfile 에서는 이렇게 쓰는게 자연스러워 보입니다. 근데 github action 에서도 해당 베이스 이미지를 쓸 수 있으면 좋을 것 같아서요 ㅠ.ㅠ 혹시 관련해서도 조언 해주실수 있으실까요?
아마도 링크와 같이 container 구문을 써야하는 것 같은데 실제로 해본적이 없어서요.
@jsmyung-datansoft 부랴부랴 테스트 해보고 왔습니다
작성해두신 workflow 중에 python-package.yml 을 수정해서 테스트했습니다 테스트에 사용한 베이스 이미지는 https://github.com/99-66/mecab-base-py37 이걸 사용했구요
workflow는 이렇게 수정해서 pass했습니다 container 부분 추가했고, 처음에 python setup 부분은 삭제했습니다 테스트 결과는 링크 여기 보시면 될 것 같습니다
name: Python package
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
container: 6199/mecab-base-py37:latest
steps:
- name: Checkout Project
uses: actions/checkout@main
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install black isort pytest
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Lint with isort and black
run: |
isort --check kokex
black --check kokex
- name: Test with pytest
run: |
bin/run_test.sh
참고한 링크들입니다
보시고 더 필요하신거 있으시면 말씀해주세요!
@99-66 빌드 시간이 2분30초 정도에서 1분 정도로 많이 줄었네요!! 감사합니다.
한가지 고민인게, 현재 베이스 이미지는 docker 를 쓸 수 없어서 build, push 는 할 수 없더라고요. apt-get 에 docker.io 를 추가 설치해서 해결했습니다.
수정사항 반영하는김에 리포지토리를 새로 만드는게 좋아보여서 고민하다가 업데이트 했습니다. 업데이트 한 베이스 이미지는 https://github.com/jsmyung-datansoft/kokex-server-base 여기에 올려두었어요~
@99-66 빌드 시간이 2분30초 정도에서 1분 정도로 많이 줄었네요!! 감사합니다.
한가지 고민인게, 현재 베이스 이미지는 docker 를 쓸 수 없어서 build, push 는 할 수 없더라고요. apt-get 에 docker.io 를 추가 설치해서 해결했습니다.
수정사항 반영하는김에 리포지토리를 새로 만드는게 좋아보여서 고민하다가 업데이트 했습니다. 업데이트 한 베이스 이미지는 https://github.com/jsmyung-datansoft/kokex-server-base 여기에 올려두었어요~
@jsmyung-datansoft 오오 고생많으셨습니다! github action에 docker build, push 관련해서 쓸 수 있는 action들이 있더라구요. 링크 이거로 조금 테스트 해보고 말씀드릴게요. action에서 build, push를 따로 쓸 수 있으면 베이스 이미지에서 docker.io는 뺄 수 있을 것 같네요
금방 테스트 해본다는게 이래저래 치여서 이제야 확인했네요.. github action으로 테스트해봤는데 어쨋든 베이스 컨테이너에서 실행되는거 같애서, docker.io를 빼고 할 수는 없는 것 같아보여요 다른 방법이 더 있을지는 당장 딱! 생각나는게 없네요
혹시 나중에라도 더 좋은 방법이 있다면 남겨두겠습니다
빌드, 배포할때마다 mecab 설치하는데 시간이 많이 걸림 (#5와 연관 있음) Dockerfile, github action (package, upload) 확인 및 최적화 아이디어 필요 (중장기)