Repository navigation
Expand file tree
/
Copy pathDockerFile
More file actions
38 lines (32 loc) · 1.73 KB
/
Copy pathDockerFile
File metadata and controls
38 lines (32 loc) · 1.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
FROM python:3.11-slim
# 1) Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
wget gnupg ca-certificates unzip jq \
fonts-liberation libatk-bridge2.0-0 libatk1.0-0 \
libcups2 libdbus-1-3 libgbm1 libgtk-3-0 \
libnss3 libx11-xcb1 libxcomposite1 libxdamage1 libxrandr2 \
libasound2 xdg-utils \
&& rm -rf /var/lib/apt/lists/*
# 2) Download Chrome for Testing and ChromeDriver
RUN wget -q -O /tmp/versions.json https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json && \
CHROME_URL=$(jq -r '.channels.Stable.downloads.chrome[] | select(.platform=="linux64") | .url' /tmp/versions.json) && \
CHROMEDRIVER_URL=$(jq -r '.channels.Stable.downloads.chromedriver[] | select(.platform=="linux64") | .url' /tmp/versions.json) && \
wget -q -O /tmp/chrome-linux64.zip $CHROME_URL && \
wget -q -O /tmp/chromedriver-linux64.zip $CHROMEDRIVER_URL && \
unzip /tmp/chrome-linux64.zip -d /opt/chrome && \
unzip /tmp/chromedriver-linux64.zip -d /opt/chromedriver && \
ln -s /opt/chrome/chrome-linux64/chrome /usr/local/bin/chrome && \
ln -s /opt/chromedriver/chromedriver-linux64/chromedriver /usr/local/bin/chromedriver && \
chmod +x /usr/local/bin/chrome /usr/local/bin/chromedriver && \
rm -rf /tmp/chrome-linux64.zip /tmp/chromedriver-linux64.zip /tmp/versions.json
# 3) Set environment variables for Selenium
ENV CHROME_BIN=/usr/local/bin/chrome
ENV CHROMEDRIVER_BIN=/usr/local/bin/chromedriver
ENV PATH=$PATH:/usr/local/bin
# 4) Install Python dependencies
WORKDIR /app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
# 5) Copy your code and run
COPY . /app
CMD ["python3", "invideo_login_automation.py"]