Docker合成无法与yaml配置一起正常工作

krcsximq  于 2023-03-07  发布在  Docker
关注(0)|答案(1)|浏览(128)

最近我在docker-compose配置文件的command部分添加了以下命令:

livy:
    image: ecp/spark:${TAG:-latest}
    container_name: spark-livy
    ports:
      - "${LIVY_PORT:-8998}:8998"
    command: ["sh", "-c", "/opt/bitnami/livy/bin/livy-server && sed -i 's/\r$//' /opt/bitnami/livy/conf/livy-env.sh && sed -i 's/\r$//' /opt/bitnami/livy/conf/livy.conf && sed -i 's/\r$//' /opt/bitnami/livy/conf/log4j.properties &&  sed -i 's/\r$//' /opt/bitnami/spark/conf/hbase-site.xml"]
    volumes:
      - ./conf/livy-env.sh:/opt/bitnami/livy/conf/livy-env.sh
      - ./conf/livy.conf:/opt/bitnami/livy/conf/livy.conf
      - ./conf/log4j.properties:/opt/bitnami/livy/conf/log4j.properties
      - ./conf/hbase-site.xml:/opt/bitnami/spark/conf/hbase-site.xml
      - ../../spark:/opt/bitnami/spark/app # pySpark scripts
    networks:
      - default_network
    depends_on:
      - spark

之后,当我尝试使用"docker-compose build"或"docker-compose down && docker-compose rm"等命令重建或删除容器时,它只会打印:

pavel@HP-ProBook:~/dp/docker/spark$ docker-compose down
$//' /opt/bitnami/spark/conf/hbase-site.xml" &&  sed -i 's/ service "livy": "/opt/bitnami/livy/bin/livy-server && sed -i 's/
pavel@HP-ProBook:~/dp/docker/spark$ docker-compose rm
$//' /opt/bitnami/spark/conf/hbase-site.xml" &&  sed -i 's/ service "livy": "/opt/bitnami/livy/bin/livy-server && sed -i 's/

什么也不做。
如果我移除此部件:

&& sed -i 's/\r$//' /opt/bitnami/livy/conf/livy-env.sh && sed -i 's/\r$//' /opt/bitnami/livy/conf/livy.conf && sed -i 's/\r$//' /opt/bitnami/livy/conf/log4j.properties &&  sed -i 's/\r$//' /opt/bitnami/spark/conf/hbase-site.xml

只留下

command: ["sh", "-c", "/opt/bitnami/livy/bin/livy-server"]

脚本工作正常。
你怎么了?

krugob8w

krugob8w1#

它是\r您应该将其更改为\\r

尝试将命令更改为:

command: ["sh", "-c", "/opt/bitnami/livy/bin/livy-server && sed -i 's/\\r$//' /opt/bitnami/livy/conf/livy-env.sh && sed -i 's/\\r$//' /opt/bitnami/livy/conf/livy.conf && sed -i 's/\\r$//' /opt/bitnami/livy/conf/log4j.properties &&  sed -i 's/\\r$//' /opt/bitnami/spark/conf/hbase-site.xml"]

我不认为其他命令会执行!因为如果/opt/bitnami/livy/bin/livy-server被执行,就不会退出让其他命令运行。
您应该首先运行它们或使用入口点脚本。

相关问题