The docker-compose build or docker-compose up --build commands read the docker-compose.yml file looking for all services containing the build configuration option and run a docker build command for each of them.
If the Dockerfile has been renamed or placed out of the context directory, you can specify the alternate path in the Docker Compose file.
Below i will show an example of how to specify the alternate path to the Dockerfile in the build section of the Docker Compose file.
Cool Tip: Tag an existent Docker image or build a new image with tags! Read more →
Specify Dockerfile in Docker Compose
Example of the Docker Compose file with the build configuration option that specifies the relative paths to the context directory and alternate Dockerfile:
# docker-compose.yml
version: '3.9'
services:
web:
build:
context: ./web
dockerfile: ./web/build/Dockerfile-alpine
args:
environment: dev
status: stable
ports:
- 80:80
The args specified under the build key in the Docker Compose file can be transmitted to the Dockerfile as follows:
# Dockerfile-alpine
ARG environment
ARG status
RUN echo "Build environment: ${environment}"
RUN echo "Based status: ${status}"
Cool Tip: Label Docker images for better automation! Read more →