-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathDockerfile
113 lines (81 loc) · 3.82 KB
/
Dockerfile
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
# prepare base image for TS projects
FROM mcr.microsoft.com/windows/servercore:ltsc2019 as base
ADD https://aka.ms/vs/16/release/vc_redist.x64.exe C:\\vc_redist.x64.exe
RUN C:\\vc_redist.x64.exe /quiet /install
ADD https://nodejs.org/dist/v18.14.2/node-v18.14.2-win-x64.zip C:\\node.zip
RUN powershell -Command \
Expand-Archive -Path C:\\node.zip -DestinationPath C:\\Node; \
Remove-Item -Force C:\\node.zip;
RUN setx /M PATH "C:\\Node/node-v18.14.2-win-x64;%PATH%"
ADD https://classic.yarnpkg.com/latest.msi C:\\yarn.msi
RUN powershell -Command \
Start-Process msiexec.exe -ArgumentList '/i', 'C:\\yarn.msi', '/quiet', '/norestart' -NoNewWindow -Wait; \
Remove-Item -Force C:\\yarn.msi
WORKDIR /bin
# build scene-lod
FROM base as scene-lod-build
WORKDIR /scene-lod
COPY scene-lod-entities-manifest-builder/package.json ./
COPY scene-lod-entities-manifest-builder/package-lock.json ./
RUN npm ci && npm cache clean --force
COPY scene-lod-entities-manifest-builder .
RUN npm run build
# build consumer-server
FROM base as consumer-server-build
WORKDIR /app
COPY SingleParcelRoadCoordinates.json ./SingleParcelRoadCoordinates.json
WORKDIR /app/consumer-server
COPY consumer-server/package.json consumer-server/yarn.lock ./
RUN yarn install --frozen-lockfile
COPY consumer-server .
RUN yarn build
#build the dotnet app
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 as dotnet-build
WORKDIR /build
COPY ./pixyz_license_decentraland.bin ./
COPY SingleParcelRoadCoordinates.json ./
COPY DCL_PiXYZ/ ./DCL_PiXYZ
COPY nuget.config ./
ARG PIXYZ_PACKAGE
COPY ${PIXYZ_PACKAGE} ./PiXYZ-NuGetPackage/
COPY PiXYZ.sln ./
RUN dotnet publish -c Release -r win10-x64 -o ./publish --self-contained true
ARG VULKAN_DLL_PATH
COPY ${VULKAN_DLL_PATH} ./publish/vulkan-1.dll
COPY pixyz_license_decentraland.bin ./publish/pixyz_license_decentraland.bin
# bundle all apps
FROM mcr.microsoft.com/windows:ltsc2019
RUN powershell -Command Set-ExecutionPolicy RemoteSigned -Force
ADD https://aka.ms/vs/16/release/vc_redist.x64.exe C:\\vc_redist.x64.exe
RUN C:\\vc_redist.x64.exe /quiet /install
ADD https://nodejs.org/dist/v18.14.2/node-v18.14.2-win-x64.zip C:\\node.zip
RUN powershell -Command \
Expand-Archive -Path C:\\node.zip -DestinationPath C:\\Node; \
Remove-Item -Force C:\\node.zip;
RUN setx /M PATH "%PATH%;C:/Node/node-v18.14.2-win-x64"
WORKDIR /vulkan-sdt
ARG VULKAN_DLL_PATH
COPY ${VULKAN_DLL_PATH} .
RUN setx /M PATH "%PATH%;C:/vulkan-sdt"
WORKDIR /app/api
COPY --from=dotnet-build /build/publish/ .
COPY pixyz_license_decentraland.bin ./pixyz_license_decentraland.bin
WORKDIR /app
COPY pixyz_license_decentraland.bin ./pixyz_license_decentraland.bin
COPY SingleParcelRoadCoordinates.json ./SingleParcelRoadCoordinates.json
COPY --from=scene-lod-build /scene-lod/dist ./scene-lod/dist
COPY --from=scene-lod-build /scene-lod/package.json ./scene-lod/
COPY --from=scene-lod-build /scene-lod/package-lock.json ./scene-lod/
COPY --from=scene-lod-build /scene-lod/node_modules ./scene-lod/node_modules
COPY --from=scene-lod-build /scene-lod/.env.default ./scene-lod/dist/.env.default
ARG COMMIT_HASH
RUN echo "COMMIT_HASH=$COMMIT_HASH" >> ./scene-lod/.env
RUN echo "COMMIT_HASH=$COMMIT_HASH" >> ./scene-lod/.env.default
COPY --from=consumer-server-build /app/consumer-server/dist ./consumer-server/dist
COPY --from=consumer-server-build /app/consumer-server/package.json ./consumer-server/package.json
COPY --from=consumer-server-build /app/consumer-server/yarn.lock ./consumer-server/yarn.lock
COPY --from=consumer-server-build /app/consumer-server/node_modules ./consumer-server/node_modules
COPY --from=consumer-server-build /app/consumer-server/.env.default ./consumer-server/dist/.env.default
RUN echo "COMMIT_HASH=$COMMIT_HASH" >> ./consumer-server/.env
RUN echo "COMMIT_HASH=$COMMIT_HASH" >> ./consumer-server/.env.default
CMD ["node", "./consumer-server/dist/index.js"]