Docker,通过dockerfile导入mysql会导致找不到mysql命令

时间:2017-11-21 09:03:45

标签: docker dockerfile

我有几个自定义泊坞窗图像,即

cloudbluedigital/mysql:v-0.1
cloudbluedigital/redis:v-0.1

我现在正在使用这些图像来构建laravel图像,所以在我的docker文件中我有:

FROM cloudbluedigital/ubuntu:v-0.2
FROM cloudbluedigital/php:v-0.2
FROM cloudbluedigital/node:v-0.1
FROM cloudbluedigital/mysql:v-0.1
FROM cloudbluedigital/redis:v-0.1

MAINTAINER cloudbluedigital version: 0.1

所有的好和建设,但是当我运行我的新laravel图像时,我可以从redis图像启动redis-server但是找不到mysql命令,我已经检查了mysql图像并且它安装在那里但是在我的新laravel图像上没有安装。谁知道为什么会这样?这是一个正确的设置,是否值得忽略一些额外配置的文件夹? (我只使用Dockerfile,完成新手)

1 个答案:

答案 0 :(得分:2)

您正在使用多阶段构建Dockerfile。所以你的Dockerfile

FROM cloudbluedigital/ubuntu:v-0.2
FROM cloudbluedigital/php:v-0.2
FROM cloudbluedigital/node:v-0.1
FROM cloudbluedigital/mysql:v-0.1
FROM cloudbluedigital/redis:v-0.1

MAINTAINER cloudbluedigital version: 0.1

实际上相当于

FROM cloudbluedigital/redis:v-0.1

MAINTAINER cloudbluedigital version: 0.1

指定多个FROM仅用于构建工件并在最终FROM中进行复制。请阅读以下内容以了解更多详情

https://docs.docker.com/engine/userguide/eng-image/multistage-build/

您需要使用docker-compose来运行多项服务。请阅读下面的相关详细信息

https://docs.docker.com/compose/compose-file/