11# syntax=docker/dockerfile:1
22FROM mcr.microsoft.com/devcontainers/base:ubuntu
33
4- # Copy CA certs and Dynamically set NODE_EXTRA_CA_CERTS accordingly
5- RUN apt-get update && apt-get install -y ca-certificates
4+ # Copy CA certs and install Ruby and Go via Ubuntu packages (much faster than building from source)
5+ # Also install development libraries needed for Python compilation via asdf
6+ RUN apt-get update && apt-get install -y \
7+ ca-certificates \
8+ ruby-full \
9+ ruby-dev \
10+ build-essential \
11+ golang-go \
12+ libsqlite3-dev \
13+ libbz2-dev \
14+ libncurses-dev \
15+ libffi-dev \
16+ libreadline-dev \
17+ liblzma-dev \
18+ libssl-dev \
19+ zlib1g-dev \
20+ && rm -rf /var/lib/apt/lists/*
621COPY custom-ca-certs/. /usr/local/share/ca-certificates/
722RUN update-ca-certificates
823
@@ -13,10 +28,19 @@ ENV REQUESTS_CA_BUNDLE="/etc/ssl/certs/ca-certificates.crt"
1328ENV CURL_CA_BUNDLE="/etc/ssl/certs/ca-certificates.crt"
1429ENV GIT_SSL_CAINFO="/etc/ssl/certs/ca-certificates.crt"
1530
31+ # Set Go environment variables
32+ ENV GOPATH="/home/vscode/go"
33+ ENV PATH="/go/bin:${GOPATH}/bin:${PATH}"
34+
1635# Ensure CA Certs is available for all shells, Node, Python & Ruby
1736USER vscode
37+
1838RUN echo 'NODE_EXTRA_CA_CERTS="/etc/ssl/certs/ca-certificates.crt"' >> ~/.zshrc
1939RUN echo 'SSL_CERT_FILE="/etc/ssl/certs/ca-certificates.crt"' >> ~/.zshrc
2040RUN echo 'REQUESTS_CA_BUNDLE="/etc/ssl/certs/ca-certificates.crt"' >> ~/.zshrc
2141RUN echo 'CURL_CA_BUNDLE="/etc/ssl/certs/ca-certificates.crt"' >> ~/.zshrc
2242RUN echo 'GIT_SSL_CAINFO="/etc/ssl/certs/ca-certificates.crt"' >> ~/.zshrc
43+
44+ # Add Go environment to shell
45+ RUN echo 'export GOPATH="/home/vscode/go"' >> ~/.zshrc
46+ RUN echo 'export PATH="/go/bin:$GOPATH/bin:$PATH"' >> ~/.zshrc
0 commit comments