最近我在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"]
脚本工作正常。
你怎么了?
1条答案
按热度按时间krugob8w1#
它是
\r
您应该将其更改为\\r
。尝试将命令更改为:
我不认为其他命令会执行!因为如果
/opt/bitnami/livy/bin/livy-server
被执行,就不会退出让其他命令运行。您应该首先运行它们或使用入口点脚本。