Docker

[Docker] docker에 selenium 설치

먹세 2023. 5. 10. 10:59

로컬 폴더구조

selenium/

    - docker-compose/

        - selenium-local/

            - selenium/

                - Dockerfile

            docker-compose.yml

        - selenium-dev/

            - selenium/

                - Dockerfile

            docker-compose.yml

    index.py

 

local과 dev 서버를 분리하여 compose 를 생성해서, local과 dev의 동작을 분리한다.

 

아래는 로컬 기준 파일임

Dockerfile

FROM ubuntu

# python 설치 및 셀레늄 사용 시 필요한 프로그램 설치
RUN apt-get update && apt-get install -y \
    wget \
    vim \
    xvfb \
    curl \
    unzip \
    python3  \
    python3-pip \
    python3-xlrd \
    python3-pyvirtualdisplay

# 셀레늄 및 필요 프로그램 설치
RUN pip install selenium \
    webdriver_manager \
    pyvirtualdisplay  \
    undetected-chromedriver

# 크롬 설치
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
RUN apt-get update && apt-get install -y google-chrome-stable

# 로컬 소스 복사
COPY --chown=48:48 ../../ .

# 크롬 드라이버 다운로드
RUN wget -N https://chromedriver.storage.googleapis.com/112.0.5615.49/chromedriver_linux64.zip -P /download
RUN chmod -R 777 /download
RUN unzip /download/chromedriver_linux64.zip

WORKDIR /var/www/html

CMD ["python3", "-u", "-m", "http.server"]

 

docker-compose.yml

version: '3'

services:
  selenium:
    build:
      context: .
      dockerfile: ./selenium/Dockerfile
    volumes:
      - "../../:/var/www/html:rw"
    environment:
      - "TZ=Asia/Seoul"
    ports:
      - "9091:80"
    networks:
      - web-proxy
volumes:
  node-modules:
    driver: local
networks:
  web-proxy:
    external: true
반응형