Install Official Firefox .deb in Dockerfile

Mozilla announced its dedicated APT repo for Debian-based distros, including Ubuntu, containing new stable releases of Firefox as a DEB package with the release of Firefox 122 in January 2023.

Mozilla recommends this way because it ensures Firefox and all the required libraries are installed and configured optimally for your distribution.

To install from a Dockerfile, follow these steps:

# Install Firefox from Mozilla
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
    --mount=type=cache,target=/var/lib/apt,sharing=locked \
    --mount=type=tmpfs,target=/var/log \
    # Create a directory to store APT repository keys, repository lists, and preferences if they don't exist
    install -d -m 0755 /etc/apt/keyrings /etc/apt/preferences.d /etc/apt/sources.list.d > /dev/null && \

    # Import the Mozilla APT repository signing key
    curl -fsSL |  \
    gpg --dearmor --no-tty -o /etc/apt/keyrings/ > /dev/null && \

    # Add the Mozilla APT repository to the APT sources list
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/] mozilla main" |  \
    tee /etc/apt/sources.list.d/ > /dev/null && \

    # Configure APT to prioritize packages from the Mozilla repository
    echo "Package: *\nPin: origin\nPin-Priority: 1000\n\n" | tee /etc/apt/preferences.d/mozilla > /dev/null && \

    # Update your package list and install the Firefox .deb package
    apt-get update -qq > /dev/null && \
    DEBIAN_FRONTEND=noninteractive apt-get install -qq firefox > /dev/null