docker合成,多重服务如何处理入口点

泊坞窗,compose.yaml

version: '2' services: rabbitmq: build: context: . dockerfile: Dockerfile.rabbitmq image: centos:7 restart: on-failure env_file: .env command: bash /home/centos/nginx.sh nginx: build: context: . dockerfile: Dockerfile.nginx ports: - "80:80" image: centos:7 restart: on-failure env_file: .env command: bash /tmp/rabbitmq/run-rabbitmq-server.sh 

当我做docker-composer up -d和docker-composer日志时,我得到“/home/centos/nginx.sh”没有文件或目录。 如何处理docker-composer和多个服务启动多个“启动脚本”? 我根本不明白如何最好地处理这个问题。

Dockerfile.nginx

 FROM centos:7 USER root RUN yum -y install epel-release RUN yum -y install nginx RUN id -u centos &>/dev/null || useradd -ms /bin/bash centos RUN id -g www-data &>/dev/null || groupadd -g 502 www-data RUN id -u www-data &>/dev/null || useradd -u 502 -g 502 -m www-data RUN chown -R centos /var/lib/nginx RUN chgrp -R centos /var/lib/nginx COPY pregrok.html /home/centos/pregrok.html RUN mv /home/centos/pregrok.html /usr/share/nginx/html/index.html RUN ln -sf /home/centos/pregrok.html /usr/share/nginx/html/ COPY ./conf/grok-api.tpl /home/centos/grok-api.conf COPY ./conf/mime.types /home/centos/mime.types COPY ./conf/nginx-uwsgi.conf /home/centos/nginx-uwsgi.conf COPY ./conf/nginx-supervisord.conf /home/centos/nginx-supervisord.conf RUN ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log RUN ln -sf ../share/nginx /usr/local/nginx COPY ./nginx.sh /home/centos/nginx.sh USER centos EXPOSE 80 443 VOLUME ["/etc/nginx"] VOLUME ["/usr/share/nginx/html"] VOLUME ["/var/www"] 

这个启动脚本工作正常,当我看着docker-composer日志时,rabbitmq启动成功

Dockerfile.rabbitmq

 FROM centos:centos7 # Install the basic requirements RUN yum -y install epel-release && yum -y update && yum -y install pwgen wget logrotate && yum -y install nss_wrapper gettext && yum clean all # Setup rabbitmq-server RUN useradd -d /var/lib/rabbitmq -u 1001 -o -g 0 rabbitmq && \ yum -y install rabbitmq-server && yum clean all # Send the logs to stdout ENV RABBITMQ_LOGS=- RABBITMQ_SASL_LOGS=- # Create directory for scripts and passwd template RUN mkdir -p /tmp/rabbitmq RUN /usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management ADD run-rabbitmq-server.sh /tmp/rabbitmq/run-rabbitmq-server.sh # Set permissions for openshift run RUN chown -R 1001:0 /etc/rabbitmq && chown -R 1001:0 /var/lib/rabbitmq && chmod -R ug+rw /etc/rabbitmq && \ chmod -R ug+rw /var/lib/rabbitmq && find /etc/rabbitmq -type d -exec chmod g+x {} + && \ find /var/lib/rabbitmq -type d -exec chmod g+x {} + # Set workdir WORKDIR /var/lib/rabbitmq # # expose some ports # # 5672 rabbitmq-server - amqp port # 15672 rabbitmq-server - for management plugin # 4369 epmd - for clustering # 25672 rabbitmq-server - for clustering EXPOSE 5672 15672 4369 25672 # Add passwd template file for nss_wrapper ADD passwd.template /tmp/rabbitmq/passwd.template # Set permissions for scripts directory RUN chown -R 1001:0 /tmp/rabbitmq && chmod -R ug+rwx /tmp/rabbitmq && \ find /tmp/rabbitmq -type d -exec chmod g+x {} + USER 1001