【问题标题】:How to write commands with multiple lines in Dockerfile如何在 Dockerfile 中编写多行命令
【发布时间】:2023-03-28 12:44:01
【问题描述】:

此命令运行不正确。给出错误以执行它们

如何在 Dockerfile 中编写多行命令

RUN echo <VirtualHost *> >>  phabricator.conf && \
    echo <Directory "/var/www/html/repository/phabricator/webroot/">' >> phabricator.conf && \
    echo Options All Indexes FollowSymLinks' >>phabricator.conf && \
    echo Order allow,deny' >> phabricator.conf && \
    echo Allow from all' >> phabricator.conf && \
    echo Require all granted' >> phabricator.conf && \
    echo </Directory>' >> phabricator.conf && \
    echo ServerName localhost' >> phabricator.conf && \
    echo DocumentRoot /var/www/html/repository/phabricator/webroot' >> phabricator.conf && \
    echo  >> phabricator.conf && \
    echo RewriteEngine on' >>  phabricator.conf && \
    echo RewriteRule ^/rsrc/(.*)-[L,QSA]  >>  phabricator.conf && \
    echo RewriteRule ^/favicon.ico -[L,QSA]   >>  phabricator.conf && \
    echo RewriteRule ^(.*)$   /index.php?__path__=$1  [B,L,QSA] >>  phabricator.conf && \
    echo '</VirtualHost>' >> phabricator.conf && \
    echo '' >> phabricator.conf && \

【问题讨论】:

标签: docker dockerfile


【解决方案1】:
  1. 最后一行不应以 &amp;&amp; \ 结尾 - 不确定是否是 问题,但肯定是 a 问题。
  2. 这是一种糟糕的做法。正如您已经看到的,它很难调试。正常创建文件,只需 COPY 将它们添加到映像中,而不是使用笨拙的 shell 命令链来创建它们。

【讨论】:

  • 为了减少中间图像,最好减少RUN 步骤。但是@DannyB 是对的,复制文件请使用COPY
猜你喜欢
  • 1970-01-01
  • 2016-01-31
  • 2010-10-10
  • 1970-01-01
  • 1970-01-01
  • 2022-12-11
  • 2015-11-11
  • 2014-05-24
  • 1970-01-01
相关资源
最近更新 更多