anchor.diff:  # Copyright 2017 The Go Authors. All rights reserved.
   # Use of this source code is governed by a BSD-style
   # license that can be found in the LICENSE file.
  -FROM debian:jessie
  +FROM debian:jessie as builder
   LABEL maintainer "golang-dev@googlegroups.com"
   
   ENV GOPATH /go
   ENV PATH /usr/local/go/bin:$GOPATH/bin:$PATH
   ENV GOROOT_BOOTSTRAP /usr/local/gobootstrap
  -ENV GO_VERSION 1.10
  -ENV DEPS 'ca-certificates'
  -ENV BUILD_DEPS 'curl bzip2 git gcc patch libc6-dev'
  +ENV CGO_ENABLED=0
  +ENV GO_VERSION 1.10.1
  +ENV BUILD_DEPS 'curl bzip2 git gcc patch libc6-dev ca-certificates'
   
   # Fake time
   COPY enable-fake-time.patch /usr/local/playground/
   # Fake file system
   COPY fake_fs.lst /usr/local/playground/
   
  -RUN set -x && \
  -    apt-get update && apt-get install -y ${BUILD_DEPS} ${DEPS} --no-install-recommends && rm -rf /var/lib/apt/lists/*
  -
  -RUN curl -s https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/trunk.544461/naclsdk_linux.tar.bz2 | tar -xj -C /usr/local/bin --strip-components=2 pepper_67/tools/sel_ldr_x86_64
  +RUN apt-get update && apt-get install -y ${BUILD_DEPS} --no-install-recommends
  +
  +RUN curl -s https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/trunk.544461/naclsdk_linux.tar.bz2 | tar -xj -C /tmp --strip-components=2 pepper_67/tools/sel_ldr_x86_64
   
   # Get the Go binary.
  -RUN curl -sSL https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz -o /tmp/go.tar.gz && \
  -    curl -sSL https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz.sha256 -o /tmp/go.tar.gz.sha256 && \
  -    echo "$(cat /tmp/go.tar.gz.sha256) /tmp/go.tar.gz" | sha256sum -c - && \
  -    tar -C /usr/local/ -vxzf /tmp/go.tar.gz && \
  -    rm /tmp/go.tar.gz /tmp/go.tar.gz.sha256 && \
  -    # Make a copy for GOROOT_BOOTSTRAP, because we rebuild the toolchain and make.bash removes bin/go as its first step.
  -    cp -R /usr/local/go $GOROOT_BOOTSTRAP && \
  -    # Apply the fake time and fake filesystem patches.
  -    patch /usr/local/go/src/runtime/rt0_nacl_amd64p32.s /usr/local/playground/enable-fake-time.patch && \
  -    cd /usr/local/go && go run misc/nacl/mkzip.go -p syscall /usr/local/playground/fake_fs.lst src/syscall/fstest_nacl.go && \
  -    # Re-build the Go toolchain.
  -    cd /usr/local/go/src && GOOS=nacl GOARCH=amd64p32 ./make.bash --no-clean && \
  -    # Clean up.
  -    rm -rf $GOROOT_BOOTSTRAP
  -
  -# Add and compile tour packages
  -RUN GOOS=nacl GOARCH=amd64p32 go get \
  -    golang.org/x/tour/pic \
  -    golang.org/x/tour/reader \
  -    golang.org/x/tour/tree \
  -    golang.org/x/tour/wc \
  -    golang.org/x/talks/2016/applicative/google && \
  -    rm -rf $GOPATH/src/golang.org/x/tour/.git && \
  -    rm -rf $GOPATH/src/golang.org/x/talks/.git
  -
  -# Add tour packages under their old import paths (so old snippets still work)
  -RUN mkdir -p $GOPATH/src/code.google.com/p/go-tour && \
  -    cp -R $GOPATH/src/golang.org/x/tour/* $GOPATH/src/code.google.com/p/go-tour/ && \
  -    sed -i 's_// import_// public import_' $(find $GOPATH/src/code.google.com/p/go-tour/ -name *.go) && \
  -    go install \
  -    code.google.com/p/go-tour/pic \
  -    code.google.com/p/go-tour/reader \
  -    code.google.com/p/go-tour/tree \
  -    code.google.com/p/go-tour/wc
  +RUN curl -sSL https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz -o /tmp/go.tar.gz
  +RUN curl -sSL https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz.sha256 -o /tmp/go.tar.gz.sha256
  +RUN echo "$(cat /tmp/go.tar.gz.sha256) /tmp/go.tar.gz" | sha256sum -c -
  +RUN tar -C /usr/local/ -vxzf /tmp/go.tar.gz
  +# Make a copy for GOROOT_BOOTSTRAP, because we rebuild the toolchain and make.bash removes bin/go as its first step.
  +RUN cp -R /usr/local/go $GOROOT_BOOTSTRAP
  +# Apply the fake time and fake filesystem patches.
  +RUN patch /usr/local/go/src/runtime/rt0_nacl_amd64p32.s /usr/local/playground/enable-fake-time.patch
  +RUN cd /usr/local/go && go run misc/nacl/mkzip.go -p syscall /usr/local/playground/fake_fs.lst src/syscall/fstest_nacl.go
  +# Re-build the Go toolchain.
  +RUN cd /usr/local/go/src && GOOS=nacl GOARCH=amd64p32 ./make.bash --no-clean
   
   # BEGIN deps (run `make update-deps` to update)
   
  -# Repo cloud.google.com/go at 3051b91 (2017-12-06)
  -ENV REV=3051b919da3b8d62bc3a57ab4b353ca1c72402d5
  +# Repo cloud.google.com/go at 3afaae4 (2018-03-02)
  +ENV REV=3afaae429987a1884530d6018d6e963a932d28c0
   RUN go get -d cloud.google.com/go/compute/metadata `#and 6 other pkgs` &&\
       (cd /go/src/cloud.google.com/go && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
   
  
positive.code: 	google.golang.org/grpc/credentials \
  	google.golang.org/grpc/credentials/oauth \
  	google.golang.org/grpc/encoding \
  	google.golang.org/grpc/grpclb/grpc_lb_v1/messages \
  	google.golang.org/grpc/grpclog \
  	google.golang.org/grpc/internal \
  
negative.code: 	google.golang.org/grpc/transport
  # END deps
  
  # Add and compile playground daemon
  COPY . /go/src/playground/
  RUN go install playground
  
  FROM debian:jessie
  
  RUN apt-get update && apt-get install -y git ca-certificates --no-install-recommends
  
  COPY --from=builder /usr/local/go /usr/local/go
  COPY --from=builder /tmp/sel_ldr_x86_64 /usr/local/bin
  
  ENV GOPATH /go
  ENV PATH /usr/local/go/bin:$GOPATH/bin:$PATH
  
  # Add and compile tour packages
  RUN GOOS=nacl GOARCH=amd64p32 go get \
      golang.org/x/tour/pic \
      golang.org/x/tour/reader \
      golang.org/x/tour/tree \
      golang.org/x/tour/wc \
      golang.org/x/talks/2016/applicative/google && \
      rm -rf $GOPATH/src/golang.org/x/tour/.git && \
      rm -rf $GOPATH/src/golang.org/x/talks/.git
  
  # Add tour packages under their old import paths (so old snippets still work)
  RUN mkdir -p $GOPATH/src/code.google.com/p/go-tour && \
      cp -R $GOPATH/src/golang.org/x/tour/* $GOPATH/src/code.google.com/p/go-tour/ && \
      sed -i 's_// import_// public import_' $(find $GOPATH/src/code.google.com/p/go-tour/ -name *.go) && \
      go install \
      code.google.com/p/go-tour/pic \
      code.google.com/p/go-tour/reader \
      code.google.com/p/go-tour/tree \
      code.google.com/p/go-tour/wc
  
  RUN mkdir /app
  
  COPY --from=builder /go/bin/playground /app
  COPY edit.html /app
  COPY static /app/static
  WORKDIR /app
  
  # Run tests
  RUN /app/playground test
  
  EXPOSE 8080
  ENTRYPOINT ["/app/playground"]
  