services.web的不受支持的配置选项:“ dockerfile”

时间:2019-08-19 15:24:22

标签: docker-compose dockerfile

我正在docker中使用php和mysql设置新环境。我正在使用docker-compose文件。在安装时,我意识到我需要更多的PHP扩展。我在网上进行了建议,建议编写一个docker文件并在docker-compose.yml中调用它。显示下面的错误 services.web的不受支持的配置选项:'dockerfile'

请在下面找到docker-compose.yml和Dockerfile

docker-compose.yml

version: '3'
services:
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: asdf
      # MYSQL_DATABASE: test_db
      # MYSQL_USER: root
      # MYSQL_PASSWORD: asdf
    volumes:
      - /var/mysql/:/var/lib/mysql
    ports:
      - "3306:3306"
  web:
    # image: alankar1985/php7.2:apache2
    container_name: php_web
    dockerfile: Dockerfile
    # command: apt-get install -y php-gd
    depends_on:
      - db
    volumes:
      - /var/www/html/:/var/www/html/
    ports:
      - "80:80"
    stdin_open: true
    tty: true

Dockerfile

FROM alankar1985/php7.2:apache2

RUN apt install php-gd


services.web的不受支持的配置选项:“ dockerfile”

1 个答案:

答案 0 :(得分:2)

解决此类问题的最佳方法是检查特定版本的docker-compose参考-https://docs.docker.com/compose/compose-file/

未经测试,问题是因为您需要将dockerfile置于构建之下。

旧:

web:
  dockerfile: Dockerfile

新功能:

web:
  build:
    context: .
    dockerfile: Dockerfile

由于您使用的是标准Dockerfile文件名,因此您也可以使用:

build:
  context: .

从参考页面:

  

DOCKERFILE备用Dockerfile。

     

Compose使用一个替代文件进行构建。构建路径还必须   被指定。

build:
  context: .
  dockerfile: Dockerfile-alternate