Docker `docker-entrypoint-initdb` 没有链接
Docker `docker-entrypoint-initdb` not getting linked
我正在尝试将 init.sh
脚本添加到 docker-entrypoint-initdb.d
以便我可以在 docker 容器中完成我的数据库配置。该脚本位于 Dockerfile
所在的本地目录中的 scripts
目录中。 Dockerfile
就是:
FROM glats/alpine-lamp
ENV MYSQL_ROOT_PASSWORD=password
构建命令正常运行并完成,没有错误,然后当我尝试 运行 容器时,它也 运行 正常,链接卷与初始化脚本:
docker run -d --name mydocker -p 8080:80 -it mydocker \
-v ~/Docker/scripts:/docker-entrypoint-initdb.d
然而,当我登录到 运行ning 容器时,我没有看到任何 docker-entrypoint-initdb.d
目录,显然 init.sh
从来没有 运行s:
/ # ls /
bin etc media proc sbin tmp
dev home mnt root srv usr
entry.sh lib opt run sys var
有谁知道为什么没有安装该卷?
你使用的Docker镜像中没有定义这样的逻辑,上图的entrypoint只是启动了MySQL和httpd,没有任何构建能力来自入口点的数据库。
如果您想使用 运行 初始化脚本 mysql-entrypoint 并构建您需要使用官方图像的数据库。
When a container is started for the first time, a new database with
the specified name will be created and initialized with the provided
configuration variables. Furthermore, it will execute files with
extensions .sh, .sql and .sql.gz
that are found in
/docker-entrypoint-initdb.d
.
还有运行宁容器,最好每个容器使用一个进程。你可以查看这个 docker-compose 文件,根据容器 "one process per container"
的规则 运行 堆栈
我正在尝试将 init.sh
脚本添加到 docker-entrypoint-initdb.d
以便我可以在 docker 容器中完成我的数据库配置。该脚本位于 Dockerfile
所在的本地目录中的 scripts
目录中。 Dockerfile
就是:
FROM glats/alpine-lamp
ENV MYSQL_ROOT_PASSWORD=password
构建命令正常运行并完成,没有错误,然后当我尝试 运行 容器时,它也 运行 正常,链接卷与初始化脚本:
docker run -d --name mydocker -p 8080:80 -it mydocker \
-v ~/Docker/scripts:/docker-entrypoint-initdb.d
然而,当我登录到 运行ning 容器时,我没有看到任何 docker-entrypoint-initdb.d
目录,显然 init.sh
从来没有 运行s:
/ # ls /
bin etc media proc sbin tmp
dev home mnt root srv usr
entry.sh lib opt run sys var
有谁知道为什么没有安装该卷?
你使用的Docker镜像中没有定义这样的逻辑,上图的entrypoint只是启动了MySQL和httpd,没有任何构建能力来自入口点的数据库。
如果您想使用 运行 初始化脚本 mysql-entrypoint 并构建您需要使用官方图像的数据库。
When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions
.sh, .sql and .sql.gz
that are found in/docker-entrypoint-initdb.d
.
还有运行宁容器,最好每个容器使用一个进程。你可以查看这个 docker-compose 文件,根据容器 "one process per container"
的规则 运行 堆栈