Skip to content

Mounting /etc/localtime read-only breaks configuration of tzdata package #322

@marcoesposito1988

Description

@marcoesposito1988

Hello everyone,

I encountered a problem with rocker 0.2.18 from the ubuntu 24.04 repos (but looking at the code in the main branch the problem should persist also with the current version).

The problem is that /etc/localtime is mounted as a read-only volume. When a package is installed which triggers the upgrade/reconfiguration of tzdata, its install script tries to overwrite that file and fails with the message device or resource busy.

This brings APT in an unrecoverable loop.

I got unstuck by removing the volume from the command in the python code:
https://github.com/osrf/rocker/blob/main/src/rocker/nvidia_extension.py#L77

I changed that to:

        return "  -e DISPLAY -e TERM \
  -e QT_X11_NO_MITSHM=1 \
  -e XAUTHORITY=%(xauth)s -v %(xauth)s:%(xauth)s \
  -v /tmp/.X11-unix:/tmp/.X11-unix" % locals()

For the APT package, that file is located at /usr/lib/python3/dist-packages/rocker/nvidia_extension.py

I think that copying that file into the container instead of mounting it read-only would solve the problem.

Am I missing anything, or do you see a better solution?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions