簡體   English   中英

dockerfile 繼承和 RUN 命令

[英]dockerfile inheritance and RUN commands

我正在嘗試創建一個 dockerfile 來構建一個 LAMP 服務器,以便使用alpine-lamp底座進行開發。

FROM glats/alpine-lamp
ENV MYSQL_ROOT_PASSWORD=password
RUN apk add wget && \
    apk add php7-simplexml && \
    mysql -u root -ppassword -e "CREATE DATABASE IF NOT EXISTS mydb"

當我運行docker image build -t testing . 命令來構建我的圖像我收到一個錯誤:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)

在“父”dockerfile 完成運行之前,我的 mysql 命令是否正在運行? 我已經能夠刪除這些行並啟動容器,然后從 cli 運行相同的 mysql 命令,所以我認為父燈堆棧的 mysql 服務器部分沒有完全運行。 有沒有辦法確保我的命令在父級之后運行?

在映像構建時,mysql 不會運行。 這就是您看到有關無法連接的錯誤消息的原因。

這種類型的東西不應該在構建時運行。 而是將數據庫初始化放入入口點腳本中。

暫無
暫無

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

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