-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathbuilder.Dockerfile
More file actions
103 lines (73 loc) · 1.88 KB
/
builder.Dockerfile
File metadata and controls
103 lines (73 loc) · 1.88 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
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
##########
## BASE ##
##########
FROM debian:bookworm AS base
RUN apt update
# base dependencies
RUN apt install -y \
git \
sudo \
wget \
unzip \
build-essential \
cmake \
libssl-dev \
mesa-common-dev \
libpsl-dev \
libzstd-dev
# Found on qt5 wiki page for building from source
RUN apt install -y \
'^libxcb.*-dev' \
libx11-xcb-dev \
libglu1-mesa-dev \
libxrender-dev \
libxi-dev \
libxkbcommon-dev \
libxkbcommon-x11-dev
COPY scripts/deps-packages.sh /scripts/deps-packages.sh
# From deps.sh
RUN /scripts/deps-packages.sh
##################
## DEPENDENCIES ##
##################
FROM base AS deps
WORKDIR /deps
# Copy only what's necessary to install dependencies, for docker-build caching purposes
COPY scripts/deps-packages.sh scripts/deps-packages.sh
COPY scripts/deps.sh scripts/deps.sh
RUN cd /deps/scripts; /deps/scripts/deps.sh
################
## QT5 Source ##
################
FROM deps AS qt5-source
WORKDIR /deps
COPY scripts/qt5setup.sh scripts/qt5setup.sh
RUN cd /deps/scripts; /deps/scripts/qt5setup.sh --init-only
###############
## QT5 win32 ##
###############
FROM qt5-source AS qt5-win32
WORKDIR /deps
ENV BUILD_ROOT=/deps
COPY --from=qt5-source /deps /deps
COPY scripts/qt5setup.sh scripts/qt5setup.sh
RUN cd /deps/scripts; /deps/scripts/qt5setup.sh --build-only --windows
###############
## QT5 linux ##
###############
FROM qt5-source AS qt5-linux
WORKDIR /deps
ENV BUILD_ROOT=/deps
COPY --from=qt5-source /deps /deps
COPY scripts/qt5setup.sh scripts/qt5setup.sh
RUN cd /deps/scripts; /deps/scripts/qt5setup.sh --build-only --linux
###########
## FINAL ##
###########
FROM base AS final
COPY --from=deps /deps /deps
COPY --from=qt5-win32 /deps /qt5-win32
COPY --from=qt5-linux /deps /qt5-linux
COPY docker.entrypoint.sh /docker.entrypoint.sh
WORKDIR /work
CMD ["bash", "-c", "/docker.entrypoint.sh"]