docker-compose volume 为空

标签 docker docker-compose

我有这个 docker-compose 配置文件:

version: '3.0'
services:
  devbox:
    build:
      context: ./
      dockerfile: DevBox.DockerFile
    volumes:
      - "./html:/usr/src/app"
    ports:
      - "80:80"
      - "443:443"
    
  devmysql:
    build:
      context: ./
      dockerfile: MySQLDev.DockerFile
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: 'secret'
    restart: always
    volumes:
            - "./mysql-data:/var/lib/mysql"
  phpmyadmin:
    image: phpmyadmin/phpmyadmin:5.0.1
    restart: always
    environment:
      PMA_HOST: dev-mysql
      PMA_USER: root
      PMA_PASSWORD: secret
    ports:
      - "5000:80"
volumes:
  mysql-data: {}
  html: {}

问题是 devbox 上的卷是空的,即使 html 目录不是。

如果我运行:

docker run -d -v ./html:/usr/src/app testdocker_devbox

它按预期工作。

我在我的配置文件中没有发现问题。

我的 DevBox.Docker 文件是:

FROM ubuntu:latest
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update -y
RUN apt-get upgrade -y
RUN apt-get install -y apache2 
RUN apt-get install -y php 
RUN apt-get install -y php-dev 
RUN apt-get install -y php-mysql 
RUN apt-get install -y libapache2-mod-php 
RUN apt-get install -y php-curl 
RUN apt-get install -y php-json 
RUN apt-get install -y php-common 
RUN apt-get install -y php-mbstring 
RUN apt-get install -y composer
RUN curl -s "https://packagecloud.io/install/repositories/phalcon/stable/script.deb.sh" | /bin/bash
RUN apt-get install -y software-properties-common
#RUN apt-get install -y php 7.2-phalcon
# COPY ./php.ini /etc/php/7.2/apache2/php.ini
# COPY ./slc.conf /etc/apache2/sites-available/slc.conf
# COPY ./apache2.conf /etc/apache2/apache2.conf
# RUN rm -rfv /etc/apache2/sites-enabled/*.conf
# RUN ln -s /etc/apache2/sites-available/slc.conf /etc/apache2/sites-enabled/slc.conf

CMD ["apachectl","-D","FOREGROUND"]
RUN a2enmod rewrite
EXPOSE 80
EXPOSE 443

最佳答案

您需要删除 docker-compose.yml 这一端的卷声明。这用于命名卷而不用于映射到主机目录 Docker Documentation 的卷.

# remove this part then it should be fine
volumes:
  mysql-data: {}
  html: {}

关于docker-compose volume 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63639921/

相关文章:

ruby-on-rails - 如何在 Amazon Elastic Beanstalk 单容器 Docker 环境中运行 Rails 迁移和播种

linux - Docker 为 Flask API 公开端口

docker - 无法使用docker命令启动服务器-挂载目录-OCI运行时错误

PHP FPM Docker ZF1 : The session has already been started. 必须先设置 session ID

docker - Docker 中的 Firebase 没有响应

Docker 文件和撰写更新

linux - Dockerfile ADD tar.gz 不会在带有 Docker 的 ubuntu VM 上提取

docker - 在 Windows Server 2016 上安装 Docker 桌面得到 "Failed to start virtual machine MobyLinuxVM because one of the Hyper-V components is not.."

python - 权限错误: [Errno 13] Permission denied: '/code/manage.py'

laravel - HMR 不适用于 Docker 中的 Laravel Mix