forked from GachiSlave/sofg_eng
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile-1.txt
70 lines (56 loc) · 1.6 KB
/
Dockerfile-1.txt
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# For main.py
# (For a future version of an application without GUI mapping for OpenCV to build in a Docker container)
# Download base image ubuntu 22.04
FROM ubuntu:22.04
# LABEL about the custom image
LABEL maintainer="[email protected]"
LABEL version="1.0"
LABEL description="docker agent for jenkins"
# Disable Prompt During Packages Installation
ARG DEBIAN_FRONTEND=noninteractive
# Update Ubuntu Software repository and install packages as root
RUN apt update && apt-get install -y \
git \
subversion \
make \
vim \
mc \
python3 \
python3-venv \
python3-pip \
flex \
gawk \
zip \
bison \
ffmpeg \
libsm6 \
libxext6 \
libgl1-mesa-glx \
libglib2.0-0 \
libsm6 \
libxrender1 \
libxext6 \
xvfb \
x11-apps
# Add Jenkins user
RUN useradd -ms /bin/bash Jenkins
# Switch to Jenkins user
USER Jenkins
WORKDIR /home/Jenkins
# Copy repository content
COPY . .
# Switch back to root user to create virtual environment
USER root
# Create virtual environment
RUN python3 -m venv /home/Jenkins/venv
# Change ownership of the virtual environment to Jenkins user
RUN chown -R Jenkins: /home/Jenkins/venv
# Switch back to Jenkins user
USER Jenkins
# Install Python dependencies (as Jenkins user)
RUN . venv/bin/activate && pip3 install --upgrade pip
RUN . venv/bin/activate && pip3 install --no-cache-dir -r requirements.txt
# Update configuration file
RUN sed -i 's|path: \"./video.mp4\"|path: \"0\"|' config.yaml
# Run app when the container launches with minimal virtual screen size
ENTRYPOINT ["xvfb-run", "--auto-servernum", "--server-args=-screen 0 100x100x8", "python3", "main.py"]