|  | @@ -107,6 +107,8 @@ Go (a.k.a., Golang) is a programming language first developed at Google. It is a
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  # How to use this image
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +**Note:** `/go` is world-writable to allow flexibility in the user which runs the container (for example, in a container started with `--user 1000:1000`, running `go get github.com/example/...` will succeed). While the `777` directory would be insecure on a regular host setup, there are not typically other processes or users inside the container, so this is equivilant to `700` for Docker usage, but allowing for `--user` flexibility.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  ## Start a Go instance in your app
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  The most straightforward way to use this image is to use a Go container as both the build and runtime environment. In your `Dockerfile`, writing something along the lines of the following will compile and run your project:
 | 
	
	
		
			
				|  | @@ -178,9 +180,11 @@ Some of these tags may have names like buster or stretch in them. These are the
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  This image is based on the popular [Alpine Linux project](https://alpinelinux.org), available in [the `alpine` official image](https://hub.docker.com/_/alpine). Alpine Linux is much smaller than most distribution base images (~5MB), and thus leads to much slimmer images in general.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -This variant is highly recommended when final image size being as small as possible is desired. The main caveat to note is that it does use [musl libc](https://musl.libc.org) instead of [glibc and friends](https://www.etalabs.net/compare_libcs.html), so certain software might run into issues depending on the depth of their libc requirements. However, most software doesn't have an issue with this, so this variant is usually a very safe choice. See [this Hacker News comment thread](https://news.ycombinator.com/item?id=10782897) for more discussion of the issues that might arise and some pro/con comparisons of using Alpine-based images.
 | 
	
		
			
				|  |  | +This variant is highly experimental, and *not* officially supported by the Go project (see [golang/go#19938](https://github.com/golang/go/issues/19938) for details).
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +The main caveat to note is that it does use [musl libc](https://musl.libc.org) instead of [glibc and friends](https://www.etalabs.net/compare_libcs.html), which can lead to unexpected behavior. See [this Hacker News comment thread](https://news.ycombinator.com/item?id=10782897) for more discussion of the issues that might arise and some pro/con comparisons of using Alpine-based images.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -To minimize image size, it's uncommon for additional related tools (such as `git` or `bash`) to be included in Alpine-based images. Using this image as a base, add the things you need in your own Dockerfile (see the [`alpine` image description](https://hub.docker.com/_/alpine/) for examples of how to install packages if you are unfamiliar).
 | 
	
		
			
				|  |  | +To minimize image size, additional related tools (such as `git`, `gcc`, or `bash`) are not included in Alpine-based images. Using this image as a base, add the things you need in your own Dockerfile (see the [`alpine` image description](https://hub.docker.com/_/alpine/) for examples of how to install packages if you are unfamiliar). See also [docker-library/golang#250 (comment)](https://github.com/docker-library/golang/issues/250#issuecomment-451201761) for a longer explanation.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ## `golang:<version>-windowsservercore`
 | 
	
		
			
				|  |  |  
 |