2017-04-19 52 views
0

還有就是我Dockerfile.bash_profile中不與泊塢窗PHP的圖像工作

# https://hub.docker.com/_/php/ 
FROM php:5.5.23-fpm 

USER www-data 

ADD .bash_profile /var/www/.bash_profile 

SHELL ["/bin/bash", "-c"] 

RUN source /var/www/.bash_profile 

再經過容器內置我運行docker exec -it CONTAINER_NAME bash,我沒有看到我的別名定義成/var/www/.bash_profile。但如果我手動執行source /var/www/.bash_profile - 一切正常。

同樣的問題在這裏描述:https://github.com/docker/kitematic/issues/896但沒有答案。

+0

你Dockerfile沒有''CMD'or和ENTRYPOINT'你不顯示你的'泊塢窗run'命令,如'搬運工EXEC '連接到正在運行的容器 – user2915097

回答

3

那是因爲那些(即'RUN'和'SHELL')是構建指令。執行docker run時,ENTRYPOINTCOMMAND正在執行。

docker exec然而,只是進入現有容器的名稱空間並執行命令。所以在你的情況下,它只是運行bash。這就是爲什麼你必須再次獲取你的個人資料。

UPDATE:

這個片段是從man bash

當一個交互的shell但不是登錄shell啓動時,bash讀取並 /etc/bash.bashrc和執行命令〜 /.bashrc,如果這些文件存在。

所以你的情況,如果你更改文件名~/.bashrc可能工作

+0

Yeap,'docker exec'從用戶'www-data'運行'bash'(主目錄是'/ var/www')。在這個主目錄中,我放置了'.bash_profile'文件。我認爲它必須自動來源,不是嗎? – Aliance

+0

不一定,它首先取決於您是否已將'/ var/www/www-data'定義爲'www-data'用戶的主路徑,其次是您如何調用bash。閱讀上面的更新。 – Boynux

+0

非常傷心,因爲答案非常簡單!非常感謝!什麼工作。 – Aliance