使用 Docker 运行时在 Vapor 中部署 Laravel 8 应用程序后,如何在 Vapor UI 中运行命令?

问题描述 投票:0回答:1

我已经使用 Laravel Vapor 好几年了,现在使用本机运行时,直到最近需要使用 Imageick PHP 扩展时才遇到问题。本机运行时不支持 PHP 扩展,因此我决定尝试在临时服务器上使用 docker 运行时,一切都很顺利,直到我尝试在 Vapor UI 中运行 migrate 命令。在 Vapor-UI 中出现以下错误:

sh: /opt/bin/php: not found

尝试在临时部署中搜索 php 的位置以及在我的 dockerfile 中添加 php 的别名,但没有成功。这是我当前的 staging.Dockerfile:

ARG VERSION=php81

FROM laravelphp/vapor:${VERSION}

RUN apk add imagemagick imagemagick-dev php81-pecl-imagick \
&& pecl install imagick \
&& docker-php-ext-enable imagick

COPY . /var/task

以前有人遇到过这个问题吗?看起来太简单了,但我对 Docker 的经验为零,在阅读了一些文档后,我可以理解为什么它不可用,但在 Vapor 上部署期间,我会认为会有问题......如果它不可用的话有没有办法通过在 Dockerfile 或其他地方添加一些内容来访问 Vapor UI 中的 php?

laravel docker dockerfile php-extension laravel-vapor
1个回答
0
投票

经过一些测试,我能够找到 php 并使用以下行在 Vapor UI 中访问 php:

RUN mkdir /opt/bin && cp /usr/local/bin/php /opt/bin/php

用于生产的整个 Dockerfile:

ARG VERSION=php82-arm

FROM laravelphp/vapor:php82-arm

RUN apk add imagemagick imagemagick-dev php81-pecl-imagick \
&& pecl install imagick \
&& docker-php-ext-enable imagick

RUN mkdir /opt/bin && cp /usr/local/bin/php /opt/bin/php

COPY . /var/task
© www.soinside.com 2019 - 2024. All rights reserved.