gpt4 book ai didi

docker - 在Laravel中自动化项目

转载 作者:行者123 更新时间:2023-12-02 21:09:16 25 4
gpt4 key购买 nike

我在Laravel中有一个带有.env.local文件的应用程序(一个,我制作了下一个docker-compose文件:

api:
container_name: nadal_api
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/var/www/html/app
ports:
- ${APP_PORT}:80
links:
- db
- redis

和我的 docker 文件

FROM composer:latest AS composer

FROM node:latest AS node

WORKDIR /var/www/html/app/

FROM php:7.2-fpm-stretch

RUN apt-get update && apt-get install -y \ supervisor \ nginx \ zip

ADD docker/nginx.conf /etc/nginx/nginx.conf ADD docker/virtualhost.conf /etc/nginx/conf.d/default.conf ADD docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf

ARG enviroment

COPY --from=composer /usr/bin/composer /usr/bin/composer

COPY .env.local .env RUN chmod -R g+w /var/www/html/app/bootstrap

RUN composer install RUN php artisan key:generate

EXPOSE 80

CMD ["/usr/bin/supervisord"]



我想克隆存储库,并在执行docker-compose构建时在dockerfile中执行以下操作:
  • 将.env.local重命名为.env
  • 授予存储文件夹权限。我在这行
  • 中有一个错误

    RUN chmod -R g+w /var/www/html/app/bootstrap

    chmod: cannot access '/var/www/html/app/bootstrap': No such file or directory


  • docker-compose.yaml:$ {APP_PORT}从.env.local获取值(我尝试使用env_file,但它不起作用
  • 最佳答案

    Dockerfile中,没有COPY操作可将您当前的所有项目代码复制到创建的图像中。因此,引导文件夹在您的镜像中不存在。因此chmod可以告诉您确切的信息。

    (此行-。:/ var / www / html / app)将在稍后根据图像结构创建当前目录时将其与容器同步。因此,如果要授予引导文件夹的权限,则在授予权限之前将项目代码复制到镜像中。
    在权限操作之前添加此行,以使文件夹可访问。

    COPY . /var/www/html/app

    关于docker - 在Laravel中自动化项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55867874/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com