运行节点应用在Docker槽纱

running node application in Docker trough yarn

我正在尝试创建一个 docker 图像,其目的是将使用 yarn 和 micro 的网页抓取公开为 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>

当我尝试从刚刚创建的图像启动容器时,它立即停止,通过
检查日志 docker 记录 f5fa9ba2e451

让人气馁:

su: must be run from a terminal

我做错了什么? TIA!

P.S。指出重复的问题并不能解决我的问题,因为它指的是通过 ssh 连接到图像,我的问题是在启动时。

Dockerfile USER 指令告诉镜像它应该以什么用户身份启动。您不需要在 CMD 中手动调用 su;只需删除它。

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