我正在尝试创建一个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。指出为重复项的问题并不能解决我的问题,因为它涉及到将图像缩影,我的问题是在启动时。
答案 0 :(得分:0)
Dockerfile USER
指令告诉映像应以哪个用户身份启动。您无需在su
中手动调用CMD
;只需将其删除即可。
USER appuser
CMD ["yarn", "start"]