@@ -94,7 +94,7 @@ COPY files /
94
94
# We used to copy /etc/sudoers.d/* in from files/ but this causes issues with
95
95
# permissions and layer caching. Instead, create the file directly.
96
96
RUN mkdir -p /etc/sudoers.d && \
97
- echo 'coder ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/nopasswd && \
97
+ echo 'coder ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/nopasswd && \
98
98
chmod 750 /etc/sudoers.d/ && \
99
99
chmod 640 /etc/sudoers.d/nopasswd
100
100
@@ -178,10 +178,10 @@ RUN apt-get update --quiet && apt-get install --yes \
178
178
# NOTE: In scripts/Dockerfile.base we specifically install Terraform version 1.9.2.
179
179
# Installing the same version here to match.
180
180
RUN wget -O /tmp/terraform.zip "https://releases.hashicorp.com/terraform/1.9.2/terraform_1.9.2_linux_amd64.zip" && \
181
- unzip /tmp/terraform.zip -d /usr/local/bin && \
182
- rm -f /tmp/terraform.zip && \
183
- chmod +x /usr/local/bin/terraform && \
184
- terraform --version
181
+ unzip /tmp/terraform.zip -d /usr/local/bin && \
182
+ rm -f /tmp/terraform.zip && \
183
+ chmod +x /usr/local/bin/terraform && \
184
+ terraform --version
185
185
186
186
# Install the docker buildx component.
187
187
RUN DOCKER_BUILDX_VERSION=$(curl -s "https://api.github.com/repos/docker/buildx/releases/latest" | grep '"tag_name":' | sed -E 's/.*"(v[^"]+)".*/\1 /' ) && \
@@ -203,16 +203,17 @@ RUN LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygi
203
203
tar xf lazygit.tar.gz -C /usr/local/bin lazygit
204
204
205
205
# Install frontend utilities
206
- RUN apt-get update && \
207
- # Node.js (from nodesource) and Yarn (from yarnpkg)
208
- apt-get install --yes --quiet \
209
- nodejs yarn \
210
- # Install browsers for e2e testing
211
- google-chrome-stable microsoft-edge-beta && \
212
- # Pre-install system dependencies that Playwright needs. npx doesn't work here
213
- # for some reason. See https://github.com/microsoft/playwright-cli/issues/136
214
- npm i -g
[email protected] pnpm@^9 corepack && playwright install-deps && \
215
- npm cache clean --force
206
+ ENV NVM_DIR=/usr/local/nvm
207
+ ENV NODE_VERSION=20.16.0
208
+ RUN mkdir -p $NVM_DIR
209
+ RUN curl https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
210
+ RUN source $NVM_DIR/nvm.sh && \
211
+ nvm install $NODE_VERSION && \
212
+ nvm use $NODE_VERSION
213
+ ENV PATH=$NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH
214
+ # Allow patch updates for npm and pnpm
215
+ RUN npm install -g npm@^10.8
216
+ RUN npm install -g pnpm@^9.6
216
217
217
218
# Ensure PostgreSQL binaries are in the users $PATH.
218
219
RUN update-alternatives --install /usr/local/bin/initdb initdb /usr/lib/postgresql/16/bin/initdb 100 && \
@@ -284,15 +285,6 @@ RUN curl --silent --show-error --location --output /usr/local/bin/cloud_sql_prox
284
285
curl --silent --show-error --location "https://github.com/aquasecurity/trivy/releases/download/v${TRIVY_VERSION}/trivy_${TRIVY_VERSION}_Linux-64bit.tar.gz" | \
285
286
tar --extract --gzip --directory=/usr/local/bin --file=- trivy
286
287
287
- # Add Vercel globally. We can't install it in packages.json, because it
288
- # includes Go files which make golangci-lint unhappy.
289
- RUN yarn global add --prefix=/usr/local \
290
- vercel \
291
- typescript \
292
- typescript-language-server \
293
- prettier && \
294
- yarn cache clean
295
-
296
288
# We use yq during "make deploy" to manually substitute out fields in
297
289
# our helm values.yaml file. See https://github.com/helm/helm/issues/3141
298
290
#
0 commit comments