FROM golang:1.8
RUN apt-get -y update && apt-get install -y curl
RUN go get -u github.com/gorilla/mux
RUN go get github.com/mattn/go-sqlite3
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - && \
apt-get install -y nodejs
COPY . /go/src/beginnerapp
WORKDIR ./src/beginnerapp/beginner-app-react
RUN npm run build
RUN go install beginnerapp/
WORKDIR /go/src/beginnerapp/beginner-app-react
VOLUME /go/src/beginnerapp/local-db
WORKDIR /go/src/beginnerapp
ENTRYPOINT /go/bin/beginnerapp
EXPOSE 8080
开始时,golang项目以及reactjs代码不存在于图像上,需要在能够构建(js)/ install(golang)之前进行复制。有没有办法在将文件复制到图像之前执行构建/安装过程?理想情况下,我只需要复制golang可执行文件和reactjs生成版本。Dockerfile:如何在将所需文件复制到图像之前构建项目?
为什么你要复制所需的文件夹之前建立? –
在图像“FROM golang:1.8”上构建“go install”,然后复制(仅bin)到不同的图像“FROM alpine” – itiic
@JinnaBalu我希望最终图像只有一个golang可执行文件和reactjs的生成版本文件夹以最小化容器大小。看起来,多阶段构建是我走的路,当我有机会的时候,我会投入一些。 – irregular