#6 | Docker build, run and remove
A mega simple script to build a docker image, run the container and then remove the container. This is useful when you’re interating or you want to repeatrun the container like a script or binary many times.
#!/bin/bash
dockerfile=$1
image_name="image_${dockerfile}"
docker build -t $image_name -f "./${dockerfile}" . && docker run -t --rm $image_name
echo $?-
-tspecifies an image name. -
-fspecifies the dockerfile. This file should be in the current directory because of the.at the end of the build command. -
-tconnects your terminal to the input and output streams of the container. This is useful if you want to see output as the container command runs. -
-rmremoves the container once it has run. -
echo $?` prints out the result of the previous command.
If this was in an executable file called run_dockerfile.sh then you could do
./run_dockerfile.sh my_app.dockerPossible improvements:
-
Validate the inputs.
-
Handle errors.
-
Use a default dockerfile name (e.g. DOCKERFILE).
-
Pass extra arguments on to docker run e.g. memory allocation.
It seems you can achieve something similar with docker-compose. However when I tried it I had some difficulty getting stdout and stderr.