簡體   English   中英

如何將此docker命令轉換為docker-compose?

[英]How do I convert this docker command to docker-compose?

我手動運行此命令:

$ 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

這是其他人如何做的一個示例。 http://abiasforaction.net/apache-cassandra-cluster-docker/

運行下面的命令

command:

在下面設置arg

environment:

請記住,僅僅是因為您可以做,並不意味着您應該做就做。撰寫並不總是啟動某些內容的最佳方法。 通常這可能是懶惰的方式。

如果您將其作為服務ID運行,建議構建dockerfile來啟動,然后創建systemd / init腳本來rm /重新啟動它。

您可能正在尋找類似以下的內容。 不確定是否會對您有幫助...。

    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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM