zan*_*war 10 mysql bitbucket docker bitbucket-pipelines
mysql:5.7
尝试使用 Bitbucket Pipelines设置 docker 映像的默认字符集和排序规则,文档提到得有点含糊:
如果需要进一步配置底层数据库引擎,请参考Docker Hub官方镜像。
bitbucket 文档发送给您的这个页面表明这是可能的......至少通过 docker:
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
所以我的问题是如何传递这些参数:--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
我见过人们command:
在 YML 中使用 bitbucket-pipelines 参数,但是 bitbucket 上的管道配置编辑器说它在那里无效:
definitions:
services:
mysql:
image: mysql:5.7
command: ['--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
ports:
- "3306:3306"
variables:
MYSQL_DATABASE: $MY_DATABASE
MYSQL_ROOT_PASSWORD: $MY_PW
Run Code Online (Sandbox Code Playgroud)
目前似乎无法将命令传递给作为服务运行的容器。我能够找到定义管道的 YAML 文件的架构(检查第 365 行)。不仅不能设置命令,也不能设置端口。幸运的是,3306
是默认的。
作为解决方法,我建议您基于 构建自己的 Docker 映像mysql:5.7
并将CMD
语句更改为mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
(您可以从此处mysql
查看映像的CMD
外观)。之后,您必须将映像推送到 Bitbucket 运行程序可以访问的注册表,并将该映像用于您的管道。
以下 Dockerfile 可能适合您:
FROM mysql:5.7
CMD ["mysqld", "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"]
Run Code Online (Sandbox Code Playgroud)
最后,您的定义将如下所示:
definitions:
services:
mysql:
image: your-custom-mysql-image:5.7
variables:
MYSQL_DATABASE: $MY_DATABASE
MYSQL_ROOT_PASSWORD: $MY_PW
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
734 次 |
最近记录: |