Docker-Compose配置报错:services.web不支持'dockerfile'配置项
Hey there, let's get that Docker Compose error sorted out!
The Unsupported config option for services.web: 'dockerfile' error pops up because in Compose file version 3, you can't use the dockerfile option directly under the service. Instead, it needs to be nested inside a build configuration block.
Fix 1: Update your docker-compose.yml
Here's the corrected version of your compose file, moving the Dockerfile reference into the build section while keeping your other settings intact:
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 # Remove this line since we're building from Dockerfile container_name: php_web build: context: . # Points to the directory holding your Dockerfile dockerfile: Dockerfile # Optional if your file is named exactly "Dockerfile" depends_on: - db volumes: - /var/www/html/:/var/www/html/ ports: - "80:80" stdin_open: true tty: true
Note: I commented out the image line for the web service — when using build, Docker will create a new image from your Dockerfile instead of pulling the pre-built one. If you want to tag your custom image, you can add an image field under the build block, but it's not required here.
Fix 2: Optimize your Dockerfile
Your current Dockerfile has a small improvement opportunity: always update apt package lists before installing new packages, and clean up cached files afterward to keep your image size lean. Here's the refined version:
FROM alankar1985/php7.2:apache2 RUN apt-get update && \ apt-get install -y php-gd && \ rm -rf /var/lib/apt/lists/*
Using && \ chains commands into a single RUN layer (better Docker practice), and rm -rf /var/lib/apt/lists/* deletes cached package lists so they don't bloat your final image.
Once you make these changes, run docker-compose up --build to build the web image and start your containers. That should fix the config error and get your PHP-GD extension installed correctly!
内容的提问来源于stack exchange,提问作者Alankar

