Docker: Utilizing Docker contexts in Makefiles
This documentation is part of the Advanced context usages guide. You can view the complete guide here: How to use Docker contexts in your scripts.
👋 Welcome to the Stackhero documentation!
Stackhero offers a ready-to-use Docker cloud CaaS (Containers as a Service) solution that provides a host of benefits, including:
- Easily deploy your containers to production with just a
docker-compose up.- Customizable domain name secured with HTTPS (for example, https://api.your-company.com, https://www.your-company.com, https://backoffice.your-company.com).
- Optimal performance and robust security powered by a private and dedicated VM.
- Effortless updates with just a click.
Save time and simplify your life: it only takes 5 minutes to try Stackhero's Docker CaaS cloud hosting solution and deploy your containers to production!
You can also set the DOCKER_CONTEXT variable in a Makefile. Here is an example of exporting the variable and executing a Docker container:
# Makefile
export DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com
getIp:
docker run --rm alpine wget -q -O - ifconfig.me
After creating the Makefile, invoke the command using:
make getIp
If you encounter the error
Makefile: *** missing separator. Stop., ensure thedocker run [...]line starts with a TAB character, not spaces.
Leveraging .env files in Makefiles
You can further simplify configuration by including a .env file in your Makefile. This approach ensures centralized management of your environment settings:
# Makefile
include .env
export
getIp:
docker run --rm alpine wget -q -O - ifconfig.me
Create a .env file with this content:
DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com
Then execute the command:
make getIp
If you encounter the error
Makefile: *** missing separator. Stop., verify that thedocker run [...]line begins with a TAB character rather than spaces.