docker services.web.working_dir 包含无效类型,它应该是一个字符串

标签 docker docker-compose environment-variables

我正在尝试通过 docker-compose 启动 phpserver。 我在我的工作目录中放了 3 个文件。

.env docker-compose.yml 文件

.环境

##PATHS

DB_PATH_HOST=./databases
APP_PATH_HOST=./blog
APP_PATH_CONTAINER=/var/www/html/
MYSQL_ROOT_PASSWORD=123456

docker-compose.yml

版本:'3'

services:
  web:
    build: .
    environment:
      - APACHE_RUN_USER=www-data
    volumes:
      - ${APP_PATH_HOST}: ${APP_PATH_CONTAINER}
    ports:
      - 8080:80
    working_dir:
      - ${APP_PATH_CONTAINER}
  db:
    image: mariadb
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
    volumes:
      - ${DB_PATH_HOST}: /var/lib/mysql

  adminer:
    image: adminer
    restart: always
    ports:
      - 6080:8080
  composer:
    image: composer:1.7
    volumes:
      - ${APP_PATH_HOST}: ${APP_PATH_CONTAINER}
    working_dir: ${APP_PATH_CONTAINER}
    command: composer install

和 Dockerfile

FROM php:7.2-apache

RUN docker-php-ext-install \
     pdo_mysql \
     && a2enmod
     rewrite

但是在我尝试运行之后

docker-compose up --build

我有问题

ERROR: The Compose file '.\docker-compose.yml' is invalid because:
services.web.working_dir contains an invalid type, it should be a string
services.composer.volumes contains an invalid type, it should be a string
services.web.volumes contains an invalid type, it should be a string
services.db.volumes contains an invalid type, it should be a string

我尝试将 docker-compose 文件版本更改为 2 - 不起作用 我试过用''和""同样的问题。

我想成功运行我的服务器。

最佳答案

以下两种格式有效:

格式#1

environment:
  MYSQL_ROOT_PASSWORD: rootpassword

格式#2

environment:
  - MYSQL_ROOT_PASSWORD=rootpassword

关于docker services.web.working_dir 包含无效类型,它应该是一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56128696/

相关文章:

docker - Fiware cygnus Docker构建失败

Docker exec rm 不工作

php - 无法从 php 访问 localstack s3

Java 将 -classpath 选项添加或替换 CLASSPATH 环境变量

docker - 如何在 cassandra 的 docker 实例中启用用户定义的函数?

docker - time.LoadLocation 正常工作,但在我的 docker 实例上引发错误!我如何解决它?

docker - 未知主机异常

docker - 将多个容器副本连接到单个容器而不会发生端口冲突

kubernetes - 使用 Configmap 设置一组环境变量

reactjs - 如何设置由 Cypress 运行的浏览器中可用的 process.env 变量