Dan*_*ath 0 apache laravel docker
此问题与\xe2\x80\x9c/bin/sh: 1: \xe2\x80\x9capache2ctl\xe2\x80\x9d,: not found\xe2\x80\x9d in docker 不重复
\n\n这是我在 ubuntu 操作系统中用于 laravel 框架的一个简单的 docker 文件。
\n\nversion : \'3\'\n\nservices:\n web: \n container_name: ${APP_NAME}_web\n build:\n context: ./docker/web\n ports:\n - 9000:80\n volumes:\n - ./:/var/www/app\nRun Code Online (Sandbox Code Playgroud)\n\n这是位于 docker/web 中的 docker 文件
\n\nFROM php:7.2.10-apache-stretch\n\nRUN apt-get update -yqq && \\\n apt-get install -y apt-utils zip unzip && \\\n apt-get install -y nano && \\\n apt-get install -y libzip-dev libpq-dev && \\\n a2enmod rewrite && \\\n docker-php-ext-install pdo_pgsql && \\\n docker-php-ext-install pgsql && \\\n docker-php-ext-configure zip --with-libzip && \\\n docker-php-ext-install zip && \\\n rm -rf /var/lib/apt/lists/*\n\nRUN php -r "readfile(\'http://getcomposer.org/installer\');"|php -- --install-dir=/usr/bin --filename=composer\n\nCOPY Default.conf /etc/apache2/sites-enabled/000-default.conf\n\nWORKDIR /var/www/app\n\nEXPOSE 80\n\nCMD [\'/usr/sbin/apache2ctl\', \'-D\', \'FOREGROUND\']\nRun Code Online (Sandbox Code Playgroud)\n\n当我运行这个命令时
\n\nsudo docker-compose up\nRun Code Online (Sandbox Code Playgroud)\n\n终端输出是这个错误
\n\nStarting Docker_Laravel_web ... done\nAttaching to Docker_Laravel_web\nDocker_Laravel_web | /bin/sh: 1: [/usr/sbin/apache2ctl,: not found\nDocker_Laravel_web exited with code 127\nRun Code Online (Sandbox Code Playgroud)\n\n需要一些帮助来解决这个问题,
\nDockerfile 语法中的内容看起来像 JSON 列表,但实际上并不是 JSON,并且对其引用相当挑剔。特别是在你的最后一行
CMD ['/usr/sbin/apache2ctl', '-D', 'FOREGROUND']
Run Code Online (Sandbox Code Playgroud)
你必须使用双引号
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
Run Code Online (Sandbox Code Playgroud)
否则 Docker 会将其解释为“在此命令上运行 shell”形式,这就是您在错误消息中看到[和 的原因。,
| 归档时间: |
|
| 查看次数: |
3960 次 |
| 最近记录: |