gpt4 book ai didi

php - GitLab CI/CD-Nginx容器上的供应商目录

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

我尝试为symfony写CI / CD,但是供应商目录有问题。应用被正确复制,但我没有供应商。我尝试了各种方法,但没有任何效果。在本地,因为我将使用图像名称代替图像名称变量,所以一切正常。
我的.gitlab-ci.yml

image: tiangolo/docker-with-compose
services:
- docker:dind

variables:
DOCKER_DRIVER: overlay2
IMAGE_TAG: $CI_REGISTRY_IMAGE/demo:$CI_COMMIT_REF_NAME
IMAGE_PHP_PROD: $CI_REGISTRY_IMAGE/demo:$CI_COMMIT_SHA
IMAGE_NGINX_PROD: $CI_REGISTRY_IMAGE/demo-nginx:latest
VERSION: $CI_COMMIT_SHA

stages:
- build
- deploy

before_script:
- apk add --no-cache python3 python3-dev py3-pip libffi-dev openssl-dev gcc libc-dev make
- docker login -u $CI_USER -p $CI_PASSWORD registry.gitlab.com

# build:
# stage: build
# script:
# - docker build --pull -t $IMAGE_TAG deploy
# - docker push $IMAGE_TAG

production images:
stage: build
script:
- docker build . -f deploy/php/Dockerfile -t $IMAGE_PHP_PROD
- docker push $IMAGE_PHP_PROD
- docker build . -f deploy/Dockerfile-nginx-prod -t $IMAGE_NGINX_PROD
- docker push $IMAGE_NGINX_PROD

pull:
stage: deploy
tags:
- prod
script:
- docker pull $IMAGE_PHP_PROD
- docker pull $IMAGE_NGINX_PROD

production:
stage: deploy
tags:
- deploy
before_script:

script:
- docker-compose -f deploy/docker-compose.yml up -d
docker-compose.yml
version: '3'
services:
nginx:
container_name: sf_nginx
image: $IMAGE_NGINX_PROD
restart: on-failure
ports:
- '81:80'
depends_on:
- php

php:
container_name: sf_php
image: $IMAGE_PHP_PROD
restart: on-failure
user: 1000:1000
用于php的Dockerfile
FROM php:7.4-fpm

RUN docker-php-ext-install pdo_mysql

RUN pecl install apcu

RUN apt-get update && \
apt-get install -y \
libzip-dev

RUN docker-php-ext-install zip
RUN docker-php-ext-enable apcu

RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
&& php composer-setup.php --filename=composer \
&& php -r "unlink('composer-setup.php');" \
&& mv composer /usr/local/bin/composer

WORKDIR /usr/src/app

COPY --chown=1000:1000 ./ /usr/src/app

RUN PATH=$PATH:/usr/src/apps/vendor/bin:bin
用于Nginx的Dockerfile
FROM nginx

ADD ./ /usr/src/app
ADD ./deploy/nginx/default.conf /etc/nginx/conf.d/default.conf
在php容器中存在供应商目录。 Docker-compose运行,但是我的应用无法正常工作:
enter image description here

最佳答案

我错了吗,或者您只是在不执行 Composer 的情况下安装了 Composer ?
&& mv composer /usr/local/bin/composer之后,您应该放置&& composer install --no-interaction!

关于php - GitLab CI/CD-Nginx容器上的供应商目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63902087/

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