I'm assuming that at some point in your build process, you're copying your entire application into the Docker image with COPY or ADD: COPY. /opt/app WORKDIR /opt/app RUN pip install -r requirements.txt The problem is that you're invalidating the Docker build cache every time you're copying the entire application into the image. For example, when you write your docker file, your first line will be. FROM someothercontainer What you can do is then create a new image to use in your 'FROM' in all future containers that you write, that will have this built in. The trivial example is to build a container something like. FROM ubuntu apt-get install python.Latest version
Molecule aids in the development and testing of Ansible roles
Molecule Docker Plugin is designed to allow use docker containers forprovisioning test resources.
Please note that this driver is currently in its early stage of development.
This plugin will function only if you also install community.docker ansiblecollection. Keep in mind that this requires newer version of docker pythonmodule which may not come with system-packaged versions of ansible likeUbuntu ones.
Please do not file bugs towards molecule or this plugin if Ansible fails toexecute any docker modules (missing or incorrect versions of docker or requestspython modules). Instead file them on [community.docker](https://github.com/ansible-collections/community.docker)
- Join us in the #ansible-molecule channel on Libera.
- Join the discussion in molecule-users Forum.
- Join the community working group by checking the wiki.
- Want to know about releases, subscribe to ansible-announce list.
- For the full list of Ansible email Lists, IRC channels see thecommunication page.
The MIT License.
The logo is licensed under the Creative Commons NoDerivatives 4.0 License.
If you have some other use in mind, contact us.
Release historyRelease notifications RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size molecule_docker-1.0.2-py3-none-any.whl (16.4 kB)||File type Wheel||Python version py3||Upload date||Hashes|
|Filename, size molecule-docker-1.0.2.tar.gz (21.4 kB)||File type Source||Python version None||Upload date||Hashes|
Docker Pip Install Torch KilledClose
Hashes for molecule_docker-1.0.2-py3-none-any.whl
Hashes for molecule-docker-1.0.2.tar.gz
Are you waiting for ages, every time you’re changing a tiny detail in your dockerized Pythonproject and need to build an image? Literally any comment change, makes it necessary toinstall every. single. pip. dependency. Over and over! Aaaargh.
That’s not an issue if you’re working in your dev environment,as you’re simply mounting your code and have a volume for yourvirtualenv directory - but building a new image for testing, staging or productiontakes a long time. It almost feels like you’d rather say ‘I’m not slacking off, my Docker imageis building’ and go for a coffee every time that happens. Why did you even start using Docker?The eternal waiting times are not worth it. Or is there a way around it?
Your Dockerfile probably contains something like this:
You’re adding your project code (Flask or Django project?) afterinstalling the necessary libraries and setting up a virtual environment.Then, you’re running pip to install the exact versions of every Pythondependency needed for the project in a “requirements.txt” file.
You’re not using the Docker cache as well as you could. The good news is:there’s a simple way to fix that.
Use The Docker Cache
You can prevent the perpetual re-execution of the dependency-installation stepif there were not actual changes to the stuff you’re using. There’s notricky volume mounting or multi-stage build kung-fu needed.
The ADD directive only needs to run if the referenced file changed sincethe last time it was executed. If it did, every single build step needsto run again, but if it’s the same you can just use a version from theDocker cache and skip to the next one.
If you add the requirements.txt file before your other code, andrun the pip install step right after it, both will only be executedif the file changes. Not on every build.
Docker Pip Install Cache
This way, you can skip the expensive operation if nothing changed and reuse a cached state.You Docker image build will be faster in most cases. Once that’s not enoughanymore, there are more elaborate ways to improve on the process.
Comments are closed.