因爲公司所需,開始使用docker去打包項目。一路磕磕絆絆,也算有點收穫。
因爲客戶機的ip不能肯定,因此咱們須要將項目的配置文件中的IP地址作到可配置化,經過docker的env環境變量能夠很優雅的解決這個問題。前端
在dockerfile中,咱們能夠提早定義環境變量。java
ENV HOSTIP = '127.0.0.1'複製代碼
在這一步對於不一樣類型的項目有所區別,好比:nginx
${HOSTIP}
便可。前端項目(先後分離):運行於客戶端瀏覽器,天然沒法獲取環境變量,身爲前端小白的我,用了比較直接的方法解決這個問題,但願老師們給予更好的建議。spring
// config.js
export const SERVER_URL = 'SERVER_URL'; // 'SERVER_URL'爲標識字段,用以替換複製代碼
// 啓動容器時先替換config.js中的標誌字段爲環境變量
CMD sed -i "s/SERVER_URL/$hostip/g" /path/to/config.js; nginx -g "daemon off;" // 將替換語句寫在這裏保證了容器每次啓動時候會根據環境變量替換配置文件中的IP地址。複製代碼
咱們在啓動docker的時候能夠傳入HOSTIP:docker
docker run ... -e HOSTIP='xxx.xxx.xxx.xxx' ...複製代碼