diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index ddf0c1e..eb527f1 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,54 +1,52 @@ -#----------------------------------------------------------------------------------------- +#------------------------------------------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See LICENSE in the project root for license information. -#----------------------------------------------------------------------------------------- +# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information. +#------------------------------------------------------------------------------------------------------------- FROM golang:1 -# Configure apt +# Avoid warnings by switching to noninteractive ENV DEBIAN_FRONTEND=noninteractive + +# Configure apt, install packages and tools RUN apt-get update \ - && apt-get -y install --no-install-recommends apt-utils 2>&1 - -# gocode-gomod -RUN go get -x -d github.com/stamblerre/gocode 2>&1 \ + && apt-get -y install --no-install-recommends apt-utils 2>&1 \ + # + # Verify git, process tools, lsb-release (common in install instructions for CLIs) installed + && apt-get -y install git procps lsb-release \ + # + # Install gocode-gomod + && go get -x -d github.com/stamblerre/gocode 2>&1 \ && go build -o gocode-gomod github.com/stamblerre/gocode \ - && mv gocode-gomod $GOPATH/bin/ - -# Install git, process tools, lsb-release (common in install instructions for CLIs) -RUN apt-get -y install git procps lsb-release - -# Clean up -RUN apt-get autoremove -y \ + && mv gocode-gomod $GOPATH/bin/ \ + # + # Install Go tools + && go get -u -v \ + github.com/mdempsky/gocode \ + github.com/uudashr/gopkgs/cmd/gopkgs \ + github.com/ramya-rao-a/go-outline \ + github.com/acroca/go-symbols \ + github.com/godoctor/godoctor \ + golang.org/x/tools/cmd/guru \ + golang.org/x/tools/cmd/gorename \ + github.com/rogpeppe/godef \ + github.com/zmb3/gogetdoc \ + github.com/haya14busa/goplay/cmd/goplay \ + github.com/sqs/goreturns \ + github.com/josharian/impl \ + github.com/davidrjenni/reftools/cmd/fillstruct \ + github.com/fatih/gomodifytags \ + github.com/cweill/gotests/... \ + golang.org/x/tools/cmd/goimports \ + golang.org/x/lint/golint \ + golang.org/x/tools/cmd/gopls \ + github.com/alecthomas/gometalinter \ + honnef.co/go/tools/... \ + github.com/golangci/golangci-lint/cmd/golangci-lint \ + github.com/mgechev/revive \ + github.com/derekparker/delve/cmd/dlv 2>&1 \ + # + # Clean up + && apt-get autoremove -y \ && apt-get clean -y \ - && rm -rf /var/lib/apt/lists/* -ENV DEBIAN_FRONTEND=dialog - -# Set the default shell to bash rather than sh -ENV SHELL /bin/bash - -# go tools -RUN go get -u -v \ - github.com/mdempsky/gocode \ - github.com/uudashr/gopkgs/cmd/gopkgs \ - github.com/ramya-rao-a/go-outline \ - github.com/acroca/go-symbols \ - github.com/godoctor/godoctor \ - golang.org/x/tools/cmd/guru \ - golang.org/x/tools/cmd/gorename \ - github.com/rogpeppe/godef \ - github.com/zmb3/gogetdoc \ - github.com/haya14busa/goplay/cmd/goplay \ - github.com/sqs/goreturns \ - github.com/josharian/impl \ - github.com/davidrjenni/reftools/cmd/fillstruct \ - github.com/fatih/gomodifytags \ - github.com/cweill/gotests/... \ - golang.org/x/tools/cmd/goimports \ - golang.org/x/lint/golint \ - golang.org/x/tools/cmd/gopls \ - github.com/alecthomas/gometalinter \ - honnef.co/go/tools/... \ - github.com/golangci/golangci-lint/cmd/golangci-lint \ - github.com/mgechev/revive \ - github.com/derekparker/delve/cmd/dlv 2>&1 + && rm -rf /var/lib/apt/lists/* \ No newline at end of file