簡體   English   中英

GitLab CI/CD - nginx 容器上的供應商目錄

[英]GitLab CI/CD - vendor directory on nginx container

我嘗試為 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 容器中存在 vendor 目錄。 Docker-compose 運行,但我的應用程序不工作: 在此處輸入圖片說明

我錯了還是你只是安裝了 composer 而沒有執行它?

&& mv composer /usr/local/bin/composer你應該把&& composer install --no-interaction

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM