我手动运行此命令:
$ docker run -it --rm \
--network app-tier \
bitnami/cassandra:latest cqlsh --username cassandra --password cassandra cassandra-server
但我不知道如何将其转换为docker compose文件,特别是容器的自定义属性,例如--username
和--password
。
我应该在docker-compose.yaml文件中写什么来获得相同的结果?
由于
答案 0 :(得分:2)
示例cassandra docker-compose.yml可能是
<?php
$clean = [];
if (isset($_POST['data_submitted'])){
// one way to deal with possibly tainted data
$clean['name'] = htmlentities($_POST['name']);
$clean['ppsn'] = htmlentities($_POST['ppsn']);
$clean['pin'] = htmlentities($_POST['pin']);
$clean['dob'] = htmlentites($_POST['dob']);
$employee = implode(",",$clean);
echo "employee = $employee";
}
虽然这不会为您提供命令行参数,但会使用默认的CMD或ENTRYPOINT启动它。
当您实际运行另一个命令时,默认情况下您可能不希望使用docker-compose执行此操作。或者您可以使用此命令创建新的Docker镜像作为默认值,并提供用户名和密码作为ENV的
e.g。像这样(未经测试)
version: '2'
services:
cassandra:
image: 'bitnami/cassandra:latest'
ports:
- '7000:7000'
- '7001:7001'
- '9042:9042'
- '9160:9160'
volumes:
- 'cassandra_data:/bitnami'
volumes:
cassandra_data:
driver: local
你可以建立它
FROM bitnami/cassandra:latest
ENV USER=cassandra
ENV PASSWORD=password
CMD ["cqlsh", "--username", "$USER", "--password", "$PASSWORD", "cassandra-server"]
并运行类似:
docker build -t mycassandra .
或在docker-compose中
docker run -it -e "USER=foo" -e "PASSWORD=bar" mycassandra
答案 1 :(得分:1)
以下是其他人如何做到这一点的示例。 http://abiasforaction.net/apache-cassandra-cluster-docker/
运行以下命令
function minus(){
count--;
countEl.value = count;
}
在下面设置arg
command:
请记住,因为你并不意味着你应该这样做。撰写并不总是最好的推出方式。通常它可能是懒惰的方式。
如果您将此作为服务ID运行,则建议构建dockerfile以启动,然后创建systemd / init脚本以重新启动它。
答案 2 :(得分:1)
您可能会寻找以下内容。不确定它是否会帮助你......
version: '3'
services:
my_app:
image: bitnami/cassandra:latest
command: /bin/sh -c cqlsh --username cassandra --password cassandra cassandra-server
ports:
- "8080:8080"
networks:
- app-tier
networks:
app-tier:
external: true