-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDockerfile
More file actions
180 lines (132 loc) · 5.46 KB
/
Dockerfile
File metadata and controls
180 lines (132 loc) · 5.46 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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# ==========================
# Multi-ubuntu pCloudCC .deb build
# ==========================
# ---- Stage 1: Build on Ubuntu 16.04 ----
FROM ubuntu:16.04 AS build16
ENV DEBIAN_FRONTEND=noninteractive
# Install build dependencies
RUN apt-get update && \
apt-get install -y \
cmake zlib1g-dev libboost-system-dev libboost-program-options-dev \
libpthread-stubs0-dev libfuse-dev libudev-dev fuse build-essential git \
checkinstall && \
rm -rf /var/lib/apt/lists/*
# Clone pCloudCC repository
WORKDIR /src
RUN git clone https://github.com/pcloudcom/console-client.git pcloudcc
# Build pCloudCC
WORKDIR /src/pcloudcc/pCloudCC/lib/pclsync
RUN make clean && make fs
WORKDIR /src/pcloudcc/pCloudCC/lib/mbedtls
RUN cmake . && make clean && make
WORKDIR /src/pcloudcc/pCloudCC
RUN cmake . && make
# Create .deb package including library
RUN checkinstall -y --install=no --pkgname=pcloudcc --pkgversion=2.0.1 --backup=no --deldoc=yes --fstrans=no --default
# ---- Stage 1: Build on Ubuntu 18.04 ----
FROM ubuntu:18.04 AS build18
ENV DEBIAN_FRONTEND=noninteractive
# Install build dependencies
RUN apt-get update && \
apt-get install -y \
cmake zlib1g-dev libboost-system-dev libboost-program-options-dev \
libpthread-stubs0-dev libfuse-dev libudev-dev fuse build-essential git \
checkinstall && \
rm -rf /var/lib/apt/lists/*
# Clone pCloudCC repository
WORKDIR /src
RUN git clone https://github.com/pcloudcom/console-client.git pcloudcc
# Build pCloudCC
WORKDIR /src/pcloudcc/pCloudCC/lib/pclsync
RUN make clean && make fs
WORKDIR /src/pcloudcc/pCloudCC/lib/mbedtls
RUN cmake . && make clean && make
WORKDIR /src/pcloudcc/pCloudCC
RUN cmake . && make
# Create .deb package including library
RUN checkinstall -y --install=no --pkgname=pcloudcc --pkgversion=2.0.1 --backup=no --deldoc=yes --fstrans=no --default
# ---- Stage 1: Build on Ubuntu 20.04 ----
FROM ubuntu:20.04 AS build20
ENV DEBIAN_FRONTEND=noninteractive
# Install build dependencies
RUN apt-get update && \
apt-get install -y \
cmake zlib1g-dev libboost-system-dev libboost-program-options-dev \
libpthread-stubs0-dev libfuse-dev libudev-dev fuse build-essential git \
checkinstall && \
rm -rf /var/lib/apt/lists/*
# Clone pCloudCC repository
WORKDIR /src
RUN git clone https://github.com/pcloudcom/console-client.git pcloudcc
# Build pCloudCC
WORKDIR /src/pcloudcc/pCloudCC/lib/pclsync
RUN make clean && make fs
WORKDIR /src/pcloudcc/pCloudCC/lib/mbedtls
RUN cmake . && make clean && make
WORKDIR /src/pcloudcc/pCloudCC
RUN cmake . && make
# Create .deb package including library
RUN checkinstall -y --install=no --pkgname=pcloudcc --pkgversion=2.0.1 --backup=no --deldoc=yes --fstrans=no --default
#
# ---- Stage 1: Build on Ubuntu 22.04 ----
FROM ubuntu:22.04 AS build22
ENV DEBIAN_FRONTEND=noninteractive
# Install build dependencies
RUN apt-get update && \
apt-get install -y \
cmake zlib1g-dev libboost-system-dev libboost-program-options-dev \
libpthread-stubs0-dev libfuse-dev libudev-dev fuse build-essential git \
checkinstall && \
rm -rf /var/lib/apt/lists/*
# Clone pCloudCC repository
WORKDIR /src
RUN git clone https://github.com/pcloudcom/console-client.git pcloudcc
# Build pCloudCC
WORKDIR /src/pcloudcc/pCloudCC/lib/pclsync
RUN make clean && make fs
WORKDIR /src/pcloudcc/pCloudCC/lib/mbedtls
RUN cmake . && make clean && make
WORKDIR /src/pcloudcc/pCloudCC
RUN cmake . && make
# Create .deb package including library
RUN checkinstall -y --install=no --pkgname=pcloudcc --pkgversion=2.0.1 --backup=no --deldoc=yes --fstrans=no --default
# ---- Stage 1: Build on Ubuntu 24.04 ----
FROM ubuntu:24.04 AS build24
ENV DEBIAN_FRONTEND=noninteractive
# Install build dependencies
RUN apt-get update && \
apt-get install -y \
cmake zlib1g-dev libboost-system-dev libboost-program-options-dev \
libpthread-stubs0-dev libfuse-dev libudev-dev fuse build-essential git \
checkinstall && \
rm -rf /var/lib/apt/lists/*
# Clone pCloudCC repository
WORKDIR /src
RUN git clone https://github.com/pcloudcom/console-client.git pcloudcc
# Build pCloudCC
WORKDIR /src/pcloudcc/pCloudCC/lib/pclsync
RUN make clean && make fs
WORKDIR /src/pcloudcc/pCloudCC/lib/mbedtls
RUN cmake . && make clean && make
WORKDIR /src/pcloudcc/pCloudCC
RUN cmake . && make
# Create .deb package including library
RUN checkinstall -y --install=no --pkgname=pcloudcc --pkgversion=2.0.1 --backup=no --deldoc=yes --fstrans=no --default
# ---- Output stage ----
FROM ubuntu:22.04 AS output
ENV DEBIAN_FRONTEND=noninteractive
# Create output directory for .deb files
RUN mkdir -p /out
# Copy the .deb package from the build stage
COPY --from=build16 /src/pcloudcc/pCloudCC/pcloudcc_2.0.1-1_amd64.deb /out/pcloudcc_2.0.1-ubuntu16_amd64.deb
COPY --from=build18 /src/pcloudcc/pCloudCC/pcloudcc_2.0.1-1_amd64.deb /out/pcloudcc_2.0.1-ubuntu18_amd64.deb
COPY --from=build20 /src/pcloudcc/pCloudCC/pcloudcc_2.0.1-1_amd64.deb /out/pcloudcc_2.0.1-ubuntu20_amd64.deb
COPY --from=build22 /src/pcloudcc/pCloudCC/pcloudcc_2.0.1-1_amd64.deb /out/pcloudcc_2.0.1-ubuntu22_amd64.deb
COPY --from=build24 /src/pcloudcc/pCloudCC/pcloudcc_2.0.1-1_amd64.deb /out/pcloudcc_2.0.1-ubuntu24_amd64.deb
COPY --from=build24 /src/pcloudcc/pCloudCC/pcloudcc_2.0.1-1_amd64.deb /out/pcloudcc_2.0.1-debian13_amd64.deb
# Copy the shared library
# COPY --from=build18 /usr/local/lib/libpcloudcc_lib.so /out/
# Set workdir for convenience
WORKDIR /out
# Default command just lists the contents of /out
CMD ["ls", "-l", "/out"]