我在Mac Mini上进行了出厂重置,我只想在OS X上直接安装Docker和一些基本工具(如git),而对于其他我想使用docker的软件,我要使用其他软件,例如php,phpstorm,nginx,node, mysql,postgres,phpmyadmin,mysql-workbench ...有许多版本。我想使用docker安装它们以轻松管理它们。对于这个工具,我想用我的项目或数据库存储,配置等代码映射文件夹。
在安装mysql 8的过程中,我遇到一个奇怪的问题-我能够通过phpmyadmin和mysql-workbench作为root登录到db,但是我的php 7 laravel应用在连接期间“挂起”。这是mysql dockerfile:
version: '3.1'
services:
db:
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: terefere321
MYSQL_ROOT_HOST: "%"
ports:
- 3306:3306
volumes:
- ./db_files:/var/lib/mysql
这是docker文件+脚本,它允许我在docker上通过cmd运行php:
FROM php:7.2-apache
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
RUN apt-get update &&\
apt-get install -y \
git \
zlib1g-dev \
zip \
unzip \
&&\
docker-php-ext-install pdo pdo_mysql zip &&\
a2enmod rewrite
Bash脚本运行php-cmd docker容器并“登录”以获取命令行:
set -e
cd -- "$(dirname "$0")" # go to script dir - (for macos double clik run)
docker build -t php-cmd .
docker rm -f php-cmd
docker run -d --name php-cmd -v /Volumes/work:/var/www/html php-cmd
docker exec -it php-cmd /bin/bash
这/Volumes/work
是带有我的项目代码的目录。“登录”后,我运行php artisan migrate
,应用程序挂起30秒钟,并在抛出错误后挂起:
SQLSTATE [HY000] [2006] MySQL服务器已消失PDO :: __ construct():
进行caching_sha2 auth时,服务器意外退位:109
将default-authentication-plugin=mysql_native_password
命令添加到mysql8 dockerfile-因此您应该获得:
version: '3.1'
services:
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: terefere321
MYSQL_ROOT_HOST: "%"
ports:
- 3306:3306
volumes:
- ./db_files:/var/lib/mysql
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句