Docker: необходимо сохранить папку в symfony проекте - PullRequest
1 голос
/ 23 апреля 2020

Я пытаюсь докернизировать свой Symfony проект.

В этом проекте у меня есть папка в папке: public / fichiersflux /

"fichiersflux" - это папка с постоянными данными (img, pdf ...)

Вот docker -compose.yml:

version:  '3.7'
services:
    mariadb:
        image: mariadb:10.4
        restart: always
        environment:
            MYSQL_ROOT_PASSWORD: zfezZEFfz4e1589fze
            MYSQL_DATABASE: 1c1t
            MYSQL_USER: 1c1t
            MYSQL_PASSWORD: fez45FZE1fez0fzefF!
        ports:
            - 3306:3306
    php:
        image: php:7.4
        build:
            context: .
            dockerfile: docker/php/Dockerfile
        restart: on-failure
        user: 1000:1000
    nginx:
        image: nginx:1.17-alpine
        restart: on-failure
        volumes:
            - './app/public/:/usr/src/app'
            - './docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro'
        ports:
            - 8080:80
        depends_on:
            - php

И мой Dockerfile:

# ./docker/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 \
zlib1g-dev

RUN apt-get install -y \
        libzip-dev \
        libicu-dev \
        zip \
  && docker-php-ext-install zip

RUN docker-php-ext-enable apcu \
    && docker-php-ext-install intl

# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

WORKDIR /usr/src/app

COPY app/ /usr/src/app
RUN chown -R 1000:1000 /usr/src/app

RUN PATH=$PATH:/usr/src/apps/vendor/bin:bin

Проблема в том, , когда я собираю свои docker контейнеры, папка / usr / src / app / создается заново, и я теряю все данные в public / fichiersflux

Как мне сохранить папку public / fichiersflux?

С наилучшими пожеланиями:)

1 Ответ

0 голосов
/ 24 апреля 2020

Вы можете просто добавить тома в php сервисах, чтобы смонтировать целевую папку.

version:  '3.7'
services:
mariadb:
    image: mariadb:10.4
    restart: always
    environment:
        MYSQL_ROOT_PASSWORD: zfezZEFfz4e1589fze
        MYSQL_DATABASE: 1c1t
        MYSQL_USER: 1c1t
        MYSQL_PASSWORD: fez45FZE1fez0fzefF!
    ports:
        - 3306:3306
php:
    image: php:7.4
    build:
        context: .
        dockerfile: docker/php/Dockerfile
    volumes:
      - '../app/public/fichiersflux:/usr/src/app/fichiersflux'
    restart: on-failure
    user: 1000:1000
nginx:
    image: nginx:1.17-alpine
    restart: on-failure
    volumes:
        - './app/public/:/usr/src/app'
        - './docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro'
    ports:
        - 8080:80
    depends_on:
        - php
...