From 1646834be20c2951ef4466aced8a7afa97853d81 Mon Sep 17 00:00:00 2001 From: Jorian van Oostenbrugge Date: Fri, 13 Sep 2019 21:23:22 +0200 Subject: [PATCH 1/2] Move the creation of the user to before we perform the 'go get'. This way files under the gopath (specifically go modules cache) are writable by the vscode user (which is necessary for go modules to work). --- .devcontainer/Dockerfile | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index b2a6426..3d9e5b0 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -20,8 +20,23 @@ RUN apt-get update \ # Verify git, process tools, lsb-release (common in install instructions for CLIs) installed && apt-get -y install git procps lsb-release \ # + # Create a non-root user to use if preferred - see https://aka.ms/vscode-remote/containers/non-root-user. + && groupadd --gid $USER_GID $USERNAME \ + && useradd -s /bin/bash --uid $USER_UID --gid $USER_GID -m $USERNAME \ + # [Optional] Add sudo support + && apt-get install -y sudo \ + && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ + && chmod 0440 /etc/sudoers.d/$USERNAME \ + # + # Clean up + && apt-get autoremove -y \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* + +USER $USERNAME + # Install gocode-gomod - && go get -x -d github.com/stamblerre/gocode 2>&1 \ +RUN go get -x -d github.com/stamblerre/gocode 2>&1 \ && go build -o gocode-gomod github.com/stamblerre/gocode \ && mv gocode-gomod $GOPATH/bin/ \ # @@ -49,17 +64,4 @@ RUN apt-get update \ honnef.co/go/tools/... \ github.com/golangci/golangci-lint/cmd/golangci-lint \ github.com/mgechev/revive \ - github.com/derekparker/delve/cmd/dlv 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 \ - && useradd -s /bin/bash --uid $USER_UID --gid $USER_GID -m $USERNAME \ - # [Optional] Add sudo support - && apt-get install -y sudo \ - && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ - && chmod 0440 /etc/sudoers.d/$USERNAME \ - # - # Clean up - && apt-get autoremove -y \ - && apt-get clean -y \ - && rm -rf /var/lib/apt/lists/* \ No newline at end of file + github.com/derekparker/delve/cmd/dlv 2>&1 From bb5b0a6417fa3dd8b8501ae677ff6f79afa8c679 Mon Sep 17 00:00:00 2001 From: Jorian van Oostenbrugge Date: Fri, 13 Sep 2019 21:27:00 +0200 Subject: [PATCH 2/2] It turns out to make go modules work we have to set the GO111MODULE environment variable to 'on' after we perform the 'go get', as not all packages have support for go modules yet. --- .devcontainer/Dockerfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 3d9e5b0..c28b40e 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -35,7 +35,7 @@ RUN apt-get update \ USER $USERNAME - # Install gocode-gomod +# Install gocode-gomod RUN go get -x -d github.com/stamblerre/gocode 2>&1 \ && go build -o gocode-gomod github.com/stamblerre/gocode \ && mv gocode-gomod $GOPATH/bin/ \ @@ -65,3 +65,6 @@ RUN go get -x -d github.com/stamblerre/gocode 2>&1 \ github.com/golangci/golangci-lint/cmd/golangci-lint \ github.com/mgechev/revive \ github.com/derekparker/delve/cmd/dlv 2>&1 + +# Uncomment the line below if you are using go modules +# ENV GO111MODULE=on \ No newline at end of file