php - Dockerfile 不安装 RUN 依赖项
问题描述
码头工人-compose.yml
version: '3.7'
services:
php:
build:
context: .
dockerfile: Dockerfile
image: php:7.3-rc-fpm
container_name: php_7.3-rc-fpm
volumes:
- .:/var/www/app
restart: unless-stopped
working_dir: /var/www
stdin_open: true
tty: true
Dockerfile
FROM php:7.3-rc-fpm
RUN apt-get update && apt-get install -y \
build-essential \
mysql-client \
locales \
zip \
vim \
unzip \
git \
curl
# Clear cache
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
# Install extensions
RUN docker-php-ext-install pdo_mysql mbstring zip pcntl
# Install composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Copy existing application directory permissions
COPY --chown=www:www . /var/www
# Change current user to www
USER www
启动容器
docker-compose up -d
当我执行
docker-compose exec php bash
其次是
mysql --version
导致
bash: mysql: command not found
mysql-client
丢失了,其他人也运行安装......
知道发生了什么吗?
....当我没有任何内容时,stackoverflow 需要更多详细信息来批准我的编辑......
解决方案
image: php:7.3-rc-fpm
应该被丢弃。
它告诉 docker-compose 从“php_7.3-rc-fpm”映像构建,而不是从使用 Dockerfile 构建的映像构建(这是一个优先级问题)。因此,您要求在 Dockerfile 中安装的任何内容均不可用,这很正常……
我确实测试过,如果你放弃这一行,docker-compose exec php bash
后面的命令mysql --version
会给你你所期望的。
推荐阅读
- flutter - 如何在使用颤振从侧面菜单抽屉导航时取消隐藏应用栏和底部导航栏?
- javascript - 用户关闭弹窗后如何申请优惠码?
- python - Firebase admin .listen() AttributeError 的问题
- jquery - 如何使用下一个和上一个图像制作轮播?
- unity3d - android deploymant统一构建失败
- jquery - 如何获取选择器的零件名称?
- android - 在 Android 中使用 Tenserflow 计算与相机的物距
- asp.net-mvc - Kendo DataSourceRequest 对象中的反射 XSS
- flutter - 弹出警告框
- rest - Web API Core 3.1 中的参数绑定(字符串到整数)