我試圖用作爲基礎鏡像使用mysql5.6建立鏡像。我需要在數據庫啓動之前做一些初始化,所以我需要重寫的入口點:Dockerfile:是否可以引用重寫的入口點和cmd?
# Stuff in my Dockerfile
...
COPY my-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["my-entrypoint.sh"]
我的入口點是相當簡單,太:
#!/bin/bash
echo "Running my-entrypoint.sh"
# My initialization stuff here
...
# Call mysql entrypoint
/usr/local/bin/docker-entrypoint.sh mysqld
這似乎是工作,但我d而不必在我的腳本(或我的Dockerfile)中硬編碼mysql入口點。有沒有辦法在我的Dockerfile中引用重寫的入口點,以便它可用於我的入口點腳本?也許這樣的事情?
COPY my-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["my-entrypoint.sh", BASE_ENTRYPOINT, BASE_CMD]
這兩個選項似乎仍要求它是硬編碼的,只是在Dockerfile現在。 –
在運行時將它傳入'docker run ... -e MYSQL_ENTRYPOINT = ...' –
johnharris85
感謝您的信息傢伙,我相信它必須以某種方式出現在某個地方,我不認爲在運行時傳遞它是個好主意,這個env變量對於每個運行時或者不同的平臺都沒有不同你將運行這個容器,在構建階段它一定是確定的,在運行時傳遞它只會增加額外的工作。 – shizhz