我有一个使用 gridsome 构建的静态网站,我正在尝试使用 docker 容器化,并提出了以下 Dockerfile:
FROM node:14.2.0-alpine3.10
RUN apk update && apk upgrade
RUN apk --no-cache add git g++ gcc libgcc libstdc++ linux-headers make python yarn
ENV NPM_CONFIG_PREFIX=/home/node/.npm-global
USER node
RUN npm i --global gridsome
RUN yarn global add serve
COPY --chown=node:node gridsome-website/ /home/node/build/
RUN echo && ls /home/node/build/ && echo
WORKDIR /home/node/build
USER node
RUN npm cache clean --force
RUN npm clean-install
# My attempt to serve the website from within, build is successful but serve command doesn't work
CMD ~/.npm-global/bin/gridsome build && serve -d dist/
在通过以下方式运行容器后,Gridsome 默认使用端口 8080:
docker run --name my-website -d my-website-image
它没有失败,但我无法使用链接访问我的网站:http://localhost:8080
,容器在我运行后立即停止执行。我尝试通过以下方式从容器中复制 ``` dist/`` 文件夹:
$ docker cp my-website:/home/node/build/dist ./dist
然后使用以下命令从终端手动提供:
$ serve -d dist/
它从终端工作,但为什么它在容器内失败?