지난번 포스트에 이어서
우분투에서 동작하는 python3.8으로 selenium을 돌려야 해
그러니까 일단 우분투에서 돌아가는 파이썬 도커 이미지를 FROM으로 가져오면 되겠지.
하고 python docker hub에 들어가 봄
여기서 1차 당황.
어.. 나는 ubuntu를 찾는데, buster는 뭐고, alpine.. 윈도우! 윈도우는 아니지
뭐 이런 의식의 흐름을 타고 있었다.
근데, 그렇긴 그래도, python 공식 도커헙인데 그렇게 부분적으로 제공하진 않을거야.. 이걸로 다 되니까 이렇게만 주나보지?! 라는 나름 합리적인 의심으로 일단 구글링 시작.
그 결과 알게된 사실들
그러니까
데비안에서 돌아가면 우분투에서도 돌아간다는 거다!
용량을 줄이기 위해 시스템의 기본 C runtime을 glibc 대신 musl libc 를 사용하며 다양한 쉘 명령어는 GNU util 대신 busybox 를 탑재하였습니다.
용량이 80M인 초경량화된 배포판이므로 Embbeded 나 네트웍 서버등 특정 용도에 적합하며 특히 도커(docker)에 채택되어 5M 크기의 리눅스 이미지로 유명합니다.
알파인 이미지로 테스트해볼까 하는 생각도 있다. 근데 .. 우분투랑 관계 등등 어쩌고 저쩌고..
이렇게 dockerfile, python_test.py, 그리고 requirements.txt 파일을 각각 만들어서 같은 디렉토리 밑에 둔다.
# requirements.txt 만들기: (venv) 터미널에서
pip freeze > requirements.txt
그리고 빌드한다.
# docker build [옵션] <dockerfile_경로>
docker build -t testimage:0.4 ./
-t 또는 --tag 는 이미지 이름과 태그를 설정하겠다는 옵션임.
빌드하는 과정에서 RUN 명령어가 실행되면서, requests 및 의존성을 가지는 라이브러리들이 설치되었다.
빌드된 이미지를 사용해 컨테이너를 실행해 봤다.
# docker run [옵션] <도커이미지이름>
docker run testimage:0.4
requests 라이브러리가 잘 동작해, html을 찍어줌!
사실 중간 중간 바보같은 시행착오를 겪느라 버전 0.4가 되었지만, 워낙 바보같은^^ (typo 등) 이슈니까 생략.
이제 dockerfile 생성해서 이미지 빌드하는 것 까지는 얼추 알겠다.
그래서 이제 크롬부터 깔아볼텐데, 생각나는 방법은 두가지가 있다.
1번이 더 쉬워보이므로 1번부터 시도해 보겠음.