github.com/grpc-ecosystem/grpc-gateway/v2@v2.19.1/.github/Dockerfile (about) 1 FROM golang:1.21.6 2 3 ENV NVM_DIR="/usr/local/share/nvm" 4 ENV NVM_SYMLINK_CURRENT=true \ 5 PATH=${NVM_DIR}/current/bin:${PATH} 6 7 ARG VSCODE_SCRIPTS_VERSION="v0.193.0" 8 ARG NODE_VERSION="10" 9 # Run some common installation scripts for a nicer dev environment. In order: 10 # Used to create non-root user and update system packages 11 # https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/common.md 12 # We use this to install Go tools used by gopls 13 # https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/go.md 14 # We use this to install Node 15 # https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/node.md 16 RUN apt-get update && \ 17 wget "https://raw.githubusercontent.com/microsoft/vscode-dev-containers/${VSCODE_SCRIPTS_VERSION}/script-library/common-debian.sh" && \ 18 chmod +x ./common-debian.sh && \ 19 ./common-debian.sh false vscode automatic automatic true false && \ 20 wget "https://raw.githubusercontent.com/microsoft/vscode-dev-containers/${VSCODE_SCRIPTS_VERSION}/script-library/go-debian.sh" && \ 21 chmod +x ./go-debian.sh && \ 22 ./go-debian.sh none /usr/local/go /go vscode false true && \ 23 wget "https://raw.githubusercontent.com/microsoft/vscode-dev-containers/${VSCODE_SCRIPTS_VERSION}/script-library/node-debian.sh" && \ 24 chmod +x ./node-debian.sh && \ 25 ./node-debian.sh "${NVM_DIR}" "${NODE_VERSION}" vscode true && \ 26 rm common-debian.sh go-debian.sh node-debian.sh && \ 27 DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \ 28 wget \ 29 unzip \ 30 openjdk-11-jre \ 31 bzip2 \ 32 patch && \ 33 apt-get clean -y && \ 34 rm -rf /var/lib/apt/lists/* 35 36 # Install swagger-codegen 37 ENV SWAGGER_CODEGEN_VERSION=2.4.8 38 RUN wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/${SWAGGER_CODEGEN_VERSION}/swagger-codegen-cli-${SWAGGER_CODEGEN_VERSION}.jar \ 39 -O /usr/local/bin/swagger-codegen-cli.jar && \ 40 echo '#!/bin/bash\njava -jar /usr/local/bin/swagger-codegen-cli.jar "$@"' > /usr/local/bin/swagger-codegen && \ 41 chmod +x /usr/local/bin/swagger-codegen 42 43 # Install Bazelisk as bazel to manage Bazel 44 RUN go install github.com/bazelbuild/bazelisk@latest && \ 45 mv $(which bazelisk) /usr/local/bin/bazel 46 47 # Install buildifier for bazel formatting 48 RUN go install github.com/bazelbuild/buildtools/buildifier@latest 49 50 # Give vscode ownership of GOPATH 51 RUN chown -R vscode: /go 52 53 USER vscode