diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 6be7cd1..dd1ee5b 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -21,13 +21,13 @@ RUN apt-get update \ && apt-get -y install --no-install-recommends apt-utils dialog 2>&1 \ # # Verify git, process tools, lsb-release (common in install instructions for CLIs) installed - && apt-get -y install git iproute2 procps lsb-release \ + && apt-get -y install git openssh-client less iproute2 procps lsb-release \ # - # Install Go tools w/module support + # Build Go tools w/module support && mkdir -p /tmp/gotools \ && cd /tmp/gotools \ - && GO111MODULE=on go get -v golang.org/x/tools/gopls@latest 2>&1 \ - && GO111MODULE=on go get -v \ + && GOPATH=/tmp/gotools GO111MODULE=on go get -v golang.org/x/tools/gopls@latest 2>&1 \ + && GOPATH=/tmp/gotools GO111MODULE=on go get -v \ honnef.co/go/tools/...@latest \ golang.org/x/tools/cmd/gorename@latest \ golang.org/x/tools/cmd/goimports@latest \ @@ -39,6 +39,7 @@ RUN apt-get update \ github.com/sqs/goreturns@latest \ github.com/josharian/impl@latest \ github.com/davidrjenni/reftools/cmd/fillstruct@latest \ + github.com/uudashr/gopkgs/v2/cmd/gopkgs@latest \ github.com/ramya-rao-a/go-outline@latest \ github.com/acroca/go-symbols@latest \ github.com/godoctor/godoctor@latest \ @@ -48,17 +49,19 @@ RUN apt-get update \ github.com/mgechev/revive@latest \ github.com/go-delve/delve/cmd/dlv@latest 2>&1 \ # - # Install Go tools w/o module support - && go get -v github.com/alecthomas/gometalinter \ - github.com/uudashr/gopkgs/cmd/gopkgs 2>&1 \ + # Build Go tools w/o module support + && GOPATH=/tmp/gotools go get -v github.com/alecthomas/gometalinter 2>&1 \ # - # 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/ \ + # Build gocode-gomod + && GOPATH=/tmp/gotools go get -x -d github.com/stamblerre/gocode 2>&1 \ + && GOPATH=/tmp/gotools go build -o gocode-gomod github.com/stamblerre/gocode \ + # + # Install Go tools + && mv /tmp/gotools/bin/* /usr/local/bin/ \ + && mv gocode-gomod /usr/local/bin/ \ # # Install golangci-lint - && curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin 2>&1 \ + && curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b /usr/local/bin 2>&1 \ # # Create a non-root user to use if preferred - see https://aka.ms/vscode-remote/containers/non-root-user. && groupadd --gid $USER_GID $USERNAME \ @@ -67,16 +70,14 @@ RUN apt-get update \ && apt-get install -y sudo \ && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ && chmod 0440 /etc/sudoers.d/$USERNAME \ - # Add write permission for /go/pkg - && chmod -R a+rwX /go/pkg \ # # Clean up && apt-get autoremove -y \ && apt-get clean -y \ - && rm -rf /var/lib/apt/lists/* /go/src /tmp/gotools + && rm -rf /var/lib/apt/lists/* /tmp/gotools # Update this to "on" or "off" as appropriate ENV GO111MODULE=auto # Switch back to dialog for any ad-hoc use of apt-get -ENV DEBIAN_FRONTEND=dialog +ENV DEBIAN_FRONTEND=dialog \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index dff0840..f2c05ab 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -3,9 +3,8 @@ "dockerFile": "Dockerfile", "runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ], - // Use 'appPort' to create a container with published ports. If the port isn't working, be sure - // your server accepts connections from all interfaces (0.0.0.0 or '*'), not just localhost. - "appPort": [9000], + // Use 'forwardPorts' to make a list of ports inside the container available locally. + "forwardPorts": [9000], // Use 'settings' to set *default* container specific settings.json values on container create. // You can edit these settings after create using File > Preferences > Settings > Remote. @@ -16,14 +15,14 @@ "go.useLanguageServer": true }, + // Add the IDs of extensions you want installed when the container is created in the array below. + "extensions": [ + "ms-vscode.go" + ], + // Uncomment the next line to run commands after the container is created. // "postCreateCommand": "go version", // Comment out the next line to run as root - "remoteUser": "vscode", - - // Add the IDs of extensions you want installed when the container is created in the array below. - "extensions": [ - "ms-vscode.go" - ] + "remoteUser": "vscode" } \ No newline at end of file