1 回答

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
Go 是一種編譯語言,通常不需要 Go 工具鏈來運(yùn)行 Go 程序。
我會(huì)為此使用多階段構(gòu)建。第一階段是FROM golang擁有工具鏈并構(gòu)建二進(jìn)制文件;第二個(gè)COPY --from將第一個(gè)圖像放入通常位于搜索路徑上的目錄中。
FROM golang:1.17 AS downloader
WORKDIR /app # not under /go
COPY component-review-handler/ ./ # (double-check this COPY syntax)
RUN go build -o downloader ./cmd/downloader
FROM node:14
# vvv add this line
COPY --from=downloader /app/downloader /usr/local/bin/
# same as before
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
ENV NODE_TLS_REJECT_UNAUTHORIZED='0'
EXPOSE 3000
CMD ["node", "server.js"]
由于二進(jìn)制文件現(xiàn)在位于/usr/local/bin默認(rèn)$PATH目錄中,因此您可以在您的代碼中運(yùn)行它,而無需使用cdorgo run部分
const { execFile } = require('child_process');
execFile('downloader',
(error, stdout, stderr) => { ... });
- 1 回答
- 0 關(guān)注
- 101 瀏覽
添加回答
舉報(bào)