簡體   English   中英

當使用其他用戶運行容器時,Docker無法在構建中運行

[英]Docker cannot run on build when running container with a different user

我不知道為什么節點應用程序無法運行的細節。 基本上我在nodejs應用程序中添加了一個dockerfile,這是我的Dockerfile

 FROM node:0.10-onbuild
 RUN mv /usr/src/app /ghost && useradd ghost --home /ghost && \
 cd /ghost
 ENV NODE_ENV production
 VOLUME ["/ghost/content"]
 WORKDIR /ghost
 EXPOSE 2368
 CMD ["bash", "start.bash"]

start.bash如下所示:

 #!/bin/bash

 GHOST="/ghost"
 chown -R ghost:ghost /ghost
 su ghost << EOF
 cd "$GHOST"
 NODE_ENV={$NODE_ENV:-production} npm start
 EOF

我通常像這樣運行docker:

 docker run --name ghost -d -p 80:2368 user/ghost

這樣我看不到發生了什么,所以我決定像這樣運行它:

 docker run --name ghost -it -p 80:2368 user/ghost

我得到以下輸出:

 > ghost@0.5.2 start /ghost
 > node index

似乎像啟動一樣,但是當我檢查容器docker ps -a的狀態時,它已停止。

這是該倉庫的代碼,但是start.bash和dockerfile是不同的,因為我都沒有提交最新文件,因為它們都不起作用:

JoeyHipolito /鬼

我設法使其正常工作, start bash文件或Dockerfile都沒有錯誤,只是我再次無法構建映像。

這樣,您可以在我的存儲庫中檢出最終的Dockerfilestart.bash文件:

Ghost-blog__Docker(https://github.com/joeyhipolito/ghost)

在我編寫此答案時,您可以在功能分支feature/dockerize看到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM