Skip to content

Commit 3b20eb1

Browse files
authored
[Feature] Docker Compose and RPM build (#116)
* adding the dockerfile and dockerignore * moving dockerfiles and adding docker compose for rpm * fixing RPM build * Adding a way to hold containers open
1 parent 6a6f36f commit 3b20eb1

6 files changed

Lines changed: 129 additions & 12 deletions

File tree

.dockerignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.git/
2+
build/

CMakePresets.json

Lines changed: 77 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -208,18 +208,45 @@
208208
"description": "Settings for all packages",
209209
"hidden": true,
210210
"generators": [
211-
"TGZ",
211+
"TGZ"
212+
]
213+
},
214+
{
215+
"name": "debian-package",
216+
"inherits": "default-package",
217+
"description": "Settings building a Debian Package",
218+
"hidden": true,
219+
"generators": [
212220
"DEB"
213221
]
214222
},
215223
{
216-
"name": "release-gcc-linux-shared-package",
224+
"name": "rpm-package",
217225
"inherits": "default-package",
226+
"description": "Settings building an RPM Package",
227+
"hidden": true,
228+
"generators": [
229+
"RPM"
230+
]
231+
},
232+
{
233+
"name": "release-gcc-debian-shared-package",
234+
"inherits": "debian-package",
218235
"configurePreset": "release-gcc-linux-shared-config"
219236
},
220237
{
221-
"name": "release-gcc-linux-static-package",
222-
"inherits": "default-package",
238+
"name": "release-gcc-debian-static-package",
239+
"inherits": "debian-package",
240+
"configurePreset": "release-gcc-linux-static-config"
241+
},
242+
{
243+
"name": "release-gcc-rpm-shared-package",
244+
"inherits": "rpm-package",
245+
"configurePreset": "release-gcc-linux-shared-config"
246+
},
247+
{
248+
"name": "release-gcc-rpm-static-package",
249+
"inherits": "rpm-package",
223250
"configurePreset": "release-gcc-linux-static-config"
224251
}
225252
],
@@ -263,9 +290,47 @@
263290
]
264291
},
265292
{
266-
"name": "package-release-gcc-linux-shared-workflow",
267-
"displayName": "Package Release Shared Library Workflow",
268-
"description": "Packaging the release gcc shared library",
293+
"name": "package-release-gcc-debian-shared-workflow",
294+
"displayName": "Debian Package Release Shared Library Workflow",
295+
"description": "Packaging the release gcc shared library with debian",
296+
"steps": [
297+
{
298+
"type": "configure",
299+
"name": "release-gcc-linux-shared-config"
300+
},
301+
{
302+
"type": "build",
303+
"name": "release-gcc-linux-shared-build"
304+
},
305+
{
306+
"type": "package",
307+
"name": "release-gcc-debian-shared-package"
308+
}
309+
]
310+
},
311+
{
312+
"name": "package-release-gcc-debian-static-workflow",
313+
"displayName": "Debian Package Release Static Library Workflow",
314+
"description": "Packaging the release gcc static library with debian",
315+
"steps": [
316+
{
317+
"type": "configure",
318+
"name": "release-gcc-linux-static-config"
319+
},
320+
{
321+
"type": "build",
322+
"name": "release-gcc-linux-static-build"
323+
},
324+
{
325+
"type": "package",
326+
"name": "release-gcc-debian-static-package"
327+
}
328+
]
329+
},
330+
{
331+
"name": "package-release-gcc-rpm-shared-workflow",
332+
"displayName": "RPM Package Release Shared Library Workflow",
333+
"description": "Packaging the release gcc shared library as an RPM",
269334
"steps": [
270335
{
271336
"type": "configure",
@@ -277,14 +342,14 @@
277342
},
278343
{
279344
"type": "package",
280-
"name": "release-gcc-linux-shared-package"
345+
"name": "release-gcc-rpm-shared-package"
281346
}
282347
]
283348
},
284349
{
285-
"name": "package-release-gcc-linux-static-workflow",
286-
"displayName": "Package Release Static Library Workflow",
287-
"description": "Packaging the release gcc static library",
350+
"name": "package-release-gcc-rpm-static-workflow",
351+
"displayName": "RPM Package Release Static Library Workflow",
352+
"description": "Packaging the release gcc static library as an RPM",
288353
"steps": [
289354
{
290355
"type": "configure",
@@ -296,7 +361,7 @@
296361
},
297362
{
298363
"type": "package",
299-
"name": "release-gcc-linux-static-package"
364+
"name": "release-gcc-rpm-static-package"
300365
}
301366
]
302367
}

compose.debug.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
services:
2+
debian_builder:
3+
build:
4+
context: .
5+
dockerfile: ./docker/deb/Dockerfile
6+
command: tail -f /dev/null
7+
rpm_builder:
8+
build:
9+
context: .
10+
dockerfile: ./docker/rpm/Dockerfile
11+
command: tail -f /dev/null

compose.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
services:
2+
debian_builder:
3+
build:
4+
context: .
5+
dockerfile: ./docker/deb/Dockerfile
6+
command: tail -f /dev/null
7+
rpm_builder:
8+
build:
9+
context: .
10+
dockerfile: ./docker/rpm/Dockerfile
11+
command: tail -f /dev/null

docker/deb/Dockerfile

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
FROM gcc:latest AS builder
2+
3+
RUN apt-get update && \
4+
apt-get install -y cmake && \
5+
apt-get install -y ninja-build && \
6+
rm -rf /var/lib/apt/lists/*
7+
8+
WORKDIR /respond
9+
COPY . /respond
10+
11+
RUN mkdir build && \
12+
cmake --workflow --preset package-release-gcc-debian-shared-workflow
13+
14+
FROM debian:stable-slim
15+
COPY --from=builder /respond/build/shared/*.deb .

docker/rpm/Dockerfile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
FROM fedora:latest AS builder
2+
3+
RUN dnf update -y
4+
RUN dnf install -y cmake gcc-c++ make ninja rpm-build git
5+
6+
WORKDIR /respond
7+
COPY . /respond
8+
9+
RUN mkdir build && \
10+
cmake --workflow --preset package-release-gcc-rpm-shared-workflow
11+
12+
FROM fedora:latest
13+
COPY --from=builder /respond/build/shared/*.rpm .

0 commit comments

Comments
 (0)