我正在尝试输出在.sql
mariadb docker 容器中导入文件的进度。
我有以下文件/目录设置:
│- docker-compose.yml
│- Dockerfile
│- import.sh
└── sql
- test.sql (rather big: ~ 1GB)
我docker-compose.yml
的很简单...
services:
db:
build: ./
environment:
MYSQL_ROOT_PASSWORD: root
volumes:
- ./:/docker-entrypoint-initdb.d
...使用以下 Dockerfile 安装pv
(管道查看器)。pv
应该给我一个进度条,目前导入有多远......
FROM mariadb
RUN apt-get update && apt-get install -y pv
将import.sh
通过/docker-entrypoint-initdb.d
此处描述的映射卷执行。
#!/bin/bash
# create db
mysql -uroot -proot <<-EOF
CREATE DATABASE test;
EOF
# import sql file and output progress with pv
echo "importing test.sql..."
pv --force "/docker-entrypoint-initdb.d/sql/test.sql" | mysql -uroot -proot "test"
现在,如果我运行docker-compose up
它,它只会100%
在导入结束时输出 pv 输出:
importing test.sql...
953MiB 0:01:24 [11.2MiB/s] [================================>] 100% 0:05:42
如果我在容器内执行相同的命令,它会起作用,它会给我一个移动的进度条:
pv --force "/docker-entrypoint-initdb.d/sql/test.sql" | mysql -uroot -proot "test"
60.4MiB 0:00:14 [5.79MiB/s] [=> ] 6% 0:04:53
我怎样才能打开这个进度条docker-compose up
而不是长时间等待和100%
输出?