github.com/jacobsoderblom/buffalo@v0.11.0/generators/docker/multi/templates/Dockerfile.tmpl (about)

     1  # This is a multi-stage Dockerfile and requires >= Docker 17.05
     2  # https://docs.docker.com/engine/userguide/eng-image/multistage-build/
     3  FROM gobuffalo/buffalo:{{.opts.Version}} as builder
     4  
     5  RUN mkdir -p $GOPATH/src/{{.opts.App.PackagePkg}}
     6  WORKDIR $GOPATH/src/{{.opts.App.PackagePkg}}
     7  
     8  {{if .opts.App.WithWebpack -}}
     9  # this will cache the npm install step, unless package.json changes
    10  ADD package.json .
    11  {{if .opts.App.WithYarn -}}
    12  ADD yarn.lock .
    13  RUN yarn install --no-progress
    14  {{else -}}
    15  RUN npm install --no-progress
    16  {{end -}}
    17  {{end -}}
    18  
    19  ADD . .
    20  {{if .opts.App.WithDep -}}
    21  RUN dep ensure
    22  {{else -}}
    23  RUN go get $(go list ./... | grep -v /vendor/)
    24  {{end -}}
    25  RUN buffalo build --static -o /bin/app
    26  
    27  FROM alpine
    28  RUN apk add --no-cache bash
    29  RUN apk add --no-cache ca-certificates
    30  
    31  WORKDIR /bin/
    32  
    33  COPY --from=builder /bin/app .
    34  
    35  # Comment out to run the binary in "production" mode:
    36  # ENV GO_ENV=production
    37  
    38  # Bind the app to 0.0.0.0 so it can be seen from outside the container
    39  ENV ADDR=0.0.0.0
    40  
    41  EXPOSE 3000
    42  
    43  # Comment out to run the migrations before running the binary:
    44  # CMD /bin/app migrate; /bin/app
    45  CMD exec /bin/app