-
Notifications
You must be signed in to change notification settings - Fork 46
Expand file tree
/
Copy pathDockerfile.nixos
More file actions
68 lines (61 loc) · 3.02 KB
/
Dockerfile.nixos
File metadata and controls
68 lines (61 loc) · 3.02 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
###############################################################
# Copyright (c) 2025-2026 International Color Consortium.
# All rights reserved.
# https://color.org
#
# Intent: iccDEV NixOS Docker build
#
# Last Updated: 2026-04-08 by David Hoyt
#
###############################################################
FROM nixos/nix:2.33.2@sha256:c6ebd12d96b3374ee15e3986c15aa43f5e49310634f17afcaaf4dafe4f6732b2
LABEL org.opencontainers.image.title="iccDEV Build Container (NixOS)" \
org.opencontainers.image.description="iccDEV built with Nix package manager" \
org.opencontainers.image.licenses="BSD-3-Clause" \
org.opencontainers.image.vendor="International Color Consortium" \
org.opencontainers.image.source="https://github.com/InternationalColorConsortium/iccDEV"
COPY . /workspace/iccDEV
RUN nix-shell -p cmake gcc gnumake pkg-config libxml2 libtiff libjpeg libpng nlohmann_json zlib coreutils findutils --run ' \
export NIX_LDFLAGS="-ltiff $NIX_LDFLAGS" && \
cd /workspace/iccDEV && \
sed -i "/find_package(wxWidgets COMPONENTS core base REQUIRED)/,/endif()/ s/^/# /" Build/Cmake/CMakeLists.txt && \
cd Build && \
rm -f CMakeCache.txt && rm -rf CMakeFiles && \
rm -f Cmake/CMakeCache.txt && rm -rf Cmake/CMakeFiles && \
cmake -DCMAKE_BUILD_TYPE=Release Cmake && \
make -j$(nproc) && \
echo "=== Libraries ===" && \
ls -lh /workspace/iccDEV/Build/IccProfLib/libIccProfLib2* && \
ls -lh /workspace/iccDEV/Build/IccXML/libIccXML2* && \
(ls -lh /workspace/iccDEV/Build/IccJSON/libIccJSON2* 2>/dev/null || echo "IccJSON: not built") && \
echo "=== Tools ===" && \
find /workspace/iccDEV/Build/Tools -type f -executable | sort' \
&& rm -rf /workspace/iccDEV/.git \
&& echo 'iccdev:x:1000:' >> /etc/group \
&& echo 'iccdev:x:1000:1000:iccdev:/workspace:/bin/sh' >> /etc/passwd \
&& nix-env -iA nixpkgs.coreutils nixpkgs.findutils nixpkgs.gnugrep nixpkgs.gnused \
nixpkgs.libtiff nixpkgs.libxml2 nixpkgs.libjpeg nixpkgs.libpng nixpkgs.zlib \
&& chown -R 1000:1000 /workspace \
&& nix-collect-garbage -d \
&& nix store optimise 2>/dev/null || true
ENV PATH="/workspace/iccDEV/Build/Tools/IccToXml:\
/workspace/iccDEV/Build/Tools/IccFromXml:\
/workspace/iccDEV/Build/Tools/IccDumpProfile:\
/workspace/iccDEV/Build/Tools/IccApplyNamedCmm:\
/workspace/iccDEV/Build/Tools/IccRoundTrip:\
/workspace/iccDEV/Build/Tools/IccFromCube:\
/workspace/iccDEV/Build/Tools/IccApplyProfiles:\
/workspace/iccDEV/Build/Tools/IccApplySearch:\
/workspace/iccDEV/Build/Tools/IccApplyToLink:\
/workspace/iccDEV/Build/Tools/IccJpegDump:\
/workspace/iccDEV/Build/Tools/IccPngDump:\
/workspace/iccDEV/Build/Tools/IccSpecSepToTiff:\
/workspace/iccDEV/Build/Tools/IccTiffDump:\
/workspace/iccDEV/Build/Tools/IccV5DspObsToV4Dsp:\
/workspace/iccDEV/Build/Tools/IccToJson:\
/workspace/iccDEV/Build/Tools/IccFromJson:\
${PATH}"
ENV LD_LIBRARY_PATH="/workspace/iccDEV/Build/IccProfLib:/workspace/iccDEV/Build/IccXML:/workspace/iccDEV/Build/IccJSON"
WORKDIR /workspace/iccDEV
USER iccdev
CMD ["sh"]