我手动运行此命令:
$ docker run -it --rm \
--network app-tier \
bitnami/cassandra:latest cqlsh --username cassandra --password cassandra cassandra-server
但是我不知道如何将其转换为docker compose文件,特别是容器的自定义属性,例如
--username
和--password
。我应该在docker-compose.yaml文件中写什么才能获得相同的结果?
谢谢
最佳答案
一个示例cassandra docker-compose.yml可能是
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
尽管这不会为您提供命令行参数,但是会使用默认的CMD或ENTRYPOINT来启动它。
当您实际运行另一个命令时,默认设置可能不希望通过docker-compose进行。或者,您可以使用此命令作为默认命令创建一个新的Docker镜像,并提供用户名和密码作为ENV的
例如像这样(未经测试)
FROM bitnami/cassandra:latest
ENV USER=cassandra
ENV PASSWORD=password
CMD ["cqlsh", "--username", "$USER", "--password", "$PASSWORD", "cassandra-server"]
你可以建立它
docker build -t mycassandra .
并使用以下命令运行它:
docker run -it -e "USER=foo" -e "PASSWORD=bar" mycassandra
或在docker-compose中
services:
cassandra:
image: 'mycassandra'
ports:
- '7000:7000'
- '7001:7001'
- '9042:9042'
- '9160:9160'
environment:
USER:user
PASSWORD:pass
volumes:
- 'cassandra_data:/bitnami'
volumes:
cassandra_data:
driver: local
关于docker - 如何将此docker命令转换为docker-compose?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48794544/