Skip to content

Commit

Permalink
Improve execution of pip during container building
Browse files Browse the repository at this point in the history
- Make pip less verbose as this makes harder to investigate container
  building due to being too verbose.
- Use a bind mount to prevent pip cache from being written inside the
  container but still make use of it. This will speed-up the build
  process considerably.
  • Loading branch information
ssbarnea committed Oct 11, 2024
1 parent 16a5dce commit 8e5c00b
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 2 deletions.
3 changes: 2 additions & 1 deletion src/ansible_builder/containerfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,8 @@ def prepare(self) -> None:
self.steps.append('RUN /output/scripts/pip_install $PYCMD')

if self.definition.ansible_ref_install_list:
self.steps.append('RUN $PYCMD -m pip install --no-cache-dir $ANSIBLE_INSTALL_REFS')
self.steps.append(
'RUN --mount=type=cache,dst=/root/.cache/pip $PYCMD -m pip install -q $ANSIBLE_INSTALL_REFS')

self._insert_custom_steps('append_base')

Expand Down
2 changes: 1 addition & 1 deletion test/unit/test_containerfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ def test_v3_various(build_dir_and_ee_yml):
assert "RUN $PYCMD -m pip install --no-cache-dir 'dumb-init==x.y.z'" in c.steps
assert "USER myuser" in c.steps
assert "RUN $PKGMGR install $PYPKG -y ; if [ -z $PKGMGR_PRESERVE_CACHE ]; then $PKGMGR clean all; fi" in c.steps
assert "RUN $PYCMD -m pip install --no-cache-dir $ANSIBLE_INSTALL_REFS" in c.steps
assert "RUN --mount=type=cache,dst=/root/.cache/pip $PYCMD -m pip install -q $ANSIBLE_INSTALL_REFS" in c.steps
assert 'ENTRYPOINT ["dumb-init"]' in c.steps
assert 'CMD ["csh"]' in c.steps

Expand Down

0 comments on commit 8e5c00b

Please sign in to comment.