11# This is a hack to setup alternate architecture names
22# For this to work, it needs to be built using docker 'buildx'
3- FROM ghcr.io/raonigabriel/coder-core:1.0.4 AS linux-amd64
3+ FROM ghcr.io/raonigabriel/coder-core:latest AS linux-amd64
44ARG ALT_ARCH=x64
55
6- FROM ghcr.io/raonigabriel/coder-core:1.0.4 AS linux-arm64
6+ FROM ghcr.io/raonigabriel/coder-core:latest AS linux-arm64
77ARG ALT_ARCH=arm64
88
99# This inherits from the hack above
1010FROM ${TARGETOS}-${TARGETARCH} AS builder
1111ARG TARGETARCH
12- ARG CLOUDFLARE_VERSION=2023.2.1
13- ARG OPENVSCODE_VERSION=v1.75.1
12+ ARG CLOUDFLARE_VERSION=2023.10.0
13+ ARG OPENVSCODE_VERSION=v1.84.0
1414
1515# Install npm, nodejs and some tools required to build native node modules
1616USER root
17- RUN apk --no-cache add npm build-base libsecret-dev python3 wget
17+ RUN apk --no-cache add build-base libsecret-dev krb5 -dev python3 wget
1818
1919COPY package*.json /tmp/
2020
@@ -24,20 +24,20 @@ RUN npm install && \
2424# Remove any precompiled native modules
2525 find /tmp/node_modules -name "*.node" -exec rm -rf {} \;
2626
27- WORKDIR /tmp/node_modules/keytar
28- # Build keytar native module
29- RUN npm run build && \
30- strip /tmp/node_modules/keytar /build/Release/keytar .node
27+ # Build kerberos native module
28+ WORKDIR /tmp/node_modules/kerberos
29+ RUN npm run install && \
30+ strip /tmp/node_modules/kerberos /build/Release/kerberos .node
3131
3232# Build node-pty native module
3333WORKDIR /tmp/node_modules/node-pty
3434RUN npm install && \
3535 strip /tmp/node_modules/node-pty/build/Release/pty.node
3636
37- # Build spdlog native module
38- WORKDIR /tmp/node_modules/spdlog
37+ # Build @vscode/ spdlog native module
38+ WORKDIR /tmp/node_modules/@vscode/ spdlog
3939RUN npm rebuild && \
40- strip /tmp/node_modules/spdlog/build/Release/spdlog.node
40+ strip /tmp/node_modules/@vscode/ spdlog/build/Release/spdlog.node
4141
4242# Build native-watchdog native module
4343WORKDIR /tmp/node_modules/native-watchdog
@@ -75,9 +75,14 @@ RUN wget -nv https://github.com/gitpod-io/openvscode-server/releases/download/op
7575# Put everything into a 'staging' folder
7676 mkdir -p /tmp/staging/opt/ && \
7777 mv openvscode-server-${OPENVSCODE_VERSION}-linux-${ALT_ARCH} /tmp/staging/opt/openvscode-server && \
78- cp /tmp/node_modules/keytar/build/Release/keytar.node /tmp/staging/opt/openvscode-server/node_modules/keytar/build/Release/keytar.node && \
78+ mkdir -p /tmp/staging/opt/openvscode-server/node_modules/kerberos/build/Release && \
79+ mkdir -p /tmp/staging/opt/openvscode-server/node_modules/node-pty/build/Release && \
80+ mkdir -p /tmp/staging/opt/openvscode-server/node_modules/@vscode/spdlog/build/Release && \
81+ mkdir -p /tmp/staging/opt/openvscode-server/node_modules/native-watchdog/build/Release && \
82+ mkdir -p /tmp/staging/opt/openvscode-server/node_modules/@parcel/watcher/build/Release && \
83+ cp /tmp/node_modules/kerberos/build/Release/kerberos.node /tmp/staging/opt/openvscode-server/node_modules/kerberos/build/Release/kerberos.node && \
7984 cp /tmp/node_modules/node-pty/build/Release/pty.node /tmp/staging/opt/openvscode-server/node_modules/node-pty/build/Release/pty.node && \
80- cp /tmp/node_modules/spdlog/build/Release/spdlog.node /tmp/staging/opt/openvscode-server/node_modules/spdlog/build/Release/spdlog.node && \
85+ cp /tmp/node_modules/@vscode/ spdlog/build/Release/spdlog.node /tmp/staging/opt/openvscode-server/node_modules/@vscode /spdlog/build/Release/spdlog.node && \
8186 cp /tmp/node_modules/native-watchdog/build/Release/watchdog.node /tmp/staging/opt/openvscode-server/node_modules/native-watchdog/build/Release/watchdog.node && \
8287 cp /tmp/node_modules/@parcel/watcher/build/Release/watcher.node /tmp/staging/opt/openvscode-server/node_modules/@parcel/watcher/build/Release/watcher.node && \
8388 chown -R root:root /tmp/staging/opt/openvscode-server
@@ -89,6 +94,10 @@ USER coder
8994FROM ${TARGETOS}-${TARGETARCH} AS final
9095ARG TARGETARCH
9196
97+ USER root
98+ RUN apk --no-cache add krb5
99+ USER coder
100+
92101# Copy stuff from the staging folder of the 'builder' stage
93102COPY --from=builder /tmp/staging /
94103
0 commit comments