CockroachDB泊坞窗撰写脚本和SQL命令
问题描述:
我想完成两件事情:CockroachDB泊坞窗撰写脚本和SQL命令
1)先从泊坞窗撰写(作品CockroachDB集群)
2)执行群集上的SQL命令(我想创建一个数据库)
我泊坞文件看起来像这样:
version: '3'
services:
roach-ui:
image: cockroachdb/cockroach
command: start --insecure
expose:
- "8080"
- "26257"
ports:
- "26257:26257"
- "8080:8080"
networks:
- roachnet
db-1:
image: cockroachdb/cockroach
command: start --insecure --join=roach-ui
networks:
- roachnet
volumes:
- ./data/db-1:/cockroach/cockroach-data
networks:
roachnet:
当我跑码头工人,组成了,一切正常。 虽然使用谷歌,我发现,解决方案是运行bash脚本,我创建了以下setup.sh:
sql --insecure --execute="CREATE TABLE testDB"
我试图通过命令来运行脚本:bash的-c“setup.sh”,但是Docker说它不能运行命令“bash”。 有何建议?谢谢:)
编辑:
我正在码头工人,组成了,错误我得到:
roach-ui_1 | Failed running "bash"
heimdall_roach-ui_1 exited with code 1
答
所以,你需要的是一个额外的初始化服务来初始化数据库。这项服务将运行bash脚本来执行,这将初始化数据库
setup_db.sh
#!/bin/bash
echo Wait for servers to be up
sleep 10
HOSTPARAMS="--host db-1 --insecure"
SQL="/cockroach/cockroach.sh sql $HOSTPARAMS"
$SQL -e "CREATE DATABASE tarun;"
$SQL -d tarun -e "CREATE TABLE articles(name VARCHAR);"
命令,然后添加此文件中的docker-compose.yml
泊坞窗,撰写执行.yaml
version: '3'
services:
roach-ui:
image: cockroachdb/cockroach
command: start --insecure
expose:
- "8080"
- "26257"
ports:
- "26257:26257"
- "8080:8080"
networks:
- roachnet
db-1:
image: cockroachdb/cockroach
command: start --insecure --join=roach-ui
networks:
- roachnet
volumes:
- ./data/db-1:/cockroach/cockroach-data
db-init:
image: cockroachdb/cockroach
networks:
- roachnet
volumes:
- ./setup_db.sh:/setup_db.sh
entrypoint: "/bin/bash"
command: /setup_db.sh
networks:
roachnet:
你介意复制并粘贴指定你正在运行的Docker命令以及你遇到的错误信息? –