問題背景:
在docker-compose中通過volumes把Mac上的項目目錄掛載到PHP容器中,我想修改PHP容器中,掛載卷的所屬用戶以及所屬用戶組。因此,我在dockerfile中通過RUN指令運行mkdir、chown,結果是毫無作用。
原因是:RUN 是在 docker build時運行,因此容器都不一定存在。
解決方案:
在dockerfile中使用CMD指令,CMD 在docker run 時運行。將mkdir、chown放到一個shell腳本中,通過CMD [ "/bin/bash", "/tmp/startup.sh"]調shell腳本。調用該shell腳本之前要用dockerfile的COPY指令將shell腳本copy到容器的某個目錄中,例如/tmp目錄