Docker槽纱中运行节点的应用程序

时间:2018-08-18 05:50:41

标签: node.js docker yarnpkg puppeteer

我正在尝试创建一个docker镜像,其目的是通过使用yarn和micro将web的抓取作为uService公开。

我的Docker文件如下:

FROM cheeaun/puppeteer:latest
RUN useradd -ms /bin/bash appuser
COPY . /app
RUN mkdir -p /app/logs
RUN mkdir -p /app/buffer
RUN apt-get update
RUN apt-get install make -y
RUN apt-get install g++ -y
RUN cd /app && yarn --production --pure-lockfile
EXPOSE 3000   
USER appuser
WORKDIR /app
CMD ["su", "-", "user", "yarn", "start"]

创建图像按预期进行:

docker build . -t <application-name>:<tag>

当我尝试从刚刚创建的映像启动容器时,它会立即停止,请通过
检查日志     码头工人日志f5fa9ba2e451

令人沮丧:

su: must be run from a terminal

我做错了什么? TIA!

P.S。指出为重复项的问题并不能解决我的问题,因为它涉及到将图像缩影,我的问题是在启动时。

1 个答案:

答案 0 :(得分:0)

Dockerfile USER指令告诉映像应以哪个用户身份启动。您无需在su中手动调用CMD;只需将其删除即可。

USER appuser
CMD ["yarn", "start"]