Open francisbesset opened 9 years ago
Awesome :clap:
yay
Are you sure it's a good practice to RUN
a single command combined with logical &&
? Also I think the dependencies installation step should be done before the ADD
, so it can be cached properly.
@emerick42 Good point! But the first Dockerfile built an image with a size of 303.4 MB. If I separate RUN to optimize the cache of different step, I have an image with a size of 537.6 MB.
Do you know why the container is larger?
Yes! Docker works same that git. Each statement (RUN, ENV, EXPOSE, CMD, ....) is committed. If you commit a statement, you commit the state of container.
In fact, the first Dockerfile, add dependencies in container but the dependencies are removed in same statement. In second Dockerfile, the first RUN statement is committed with dependencies.
You can use docker history curvytron
to see each commit.
Ok, I got it. I think the second option is better, at least to respect Docker's way of doing things. Did you check on other official images if they were doing optimizations like this one?
The last version is better to rebuild quickly a new container. It's ~230 MB additional. To download the initial image from Docker Hub isn't dramatic.
I purpose to add docker to build quickly the Curvytron server!
To build:
To run:
Also, you can add this repository in Docker Hub to use
docker pull
.Kiss :kiss: