【问题标题】:Docker: need to persist folder in symfony projectDocker:需要在 symfony 项目中持久化文件夹
【发布时间】:2020-04-24 15:37:10
【问题描述】:

我正在尝试 dockerize 我的 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 文件夹?

最好的问候:)

【问题讨论】:

    标签: docker symfony persistent


    【解决方案1】:

    您可以在 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 1970-01-01
      • 2020-04-05
      • 2019-10-24
      • 1970-01-01
      • 1970-01-01
      • 2021-01-16
      相关资源
      最近更新 更多