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

Вик*_*ьев 2 environment-variables docker docker-compose

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

.env docker-compose.yml Dockerfile

.env

##PATHS

DB_PATH_HOST=./databases
APP_PATH_HOST=./blog
APP_PATH_CONTAINER=/var/www/html/
MYSQL_ROOT_PASSWORD=123456
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

和 Dockerfile

FROM php:7.2-apache

RUN docker-php-ext-install \
     pdo_mysql \
     && a2enmod
     rewrite
Run Code Online (Sandbox Code Playgroud)

但是在我尝试跑步之后

docker-compose up --build
Run Code Online (Sandbox Code Playgroud)

我有问题

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
Run Code Online (Sandbox Code Playgroud)

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

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

Soh*_*med 7

以下两种格式有效:

格式#1

environment:
  MYSQL_ROOT_PASSWORD: rootpassword
Run Code Online (Sandbox Code Playgroud)

格式#2

environment:
  - MYSQL_ROOT_PASSWORD=rootpassword
Run Code Online (Sandbox Code Playgroud)