## Dockerfile cat >Dockerfile <<- 'Dockerfile' # syntax = docker/dockerfile:1.2 FROM myvnc/i3:base USER root # # ENV variables # ENV MYVNC_FIREFOX_URL # optional # ENV MYVNC_FIREFOX_OPTS # eg, --kiosk # Install packages RUN --mount=type=cache,sharing=locked,target=/var/cache/pacman \ pacman -Syu --ask 4 --needed \ firefox firefox-decentraleyes firefox-ublock-origin \ && pacman -Scc --ask 4 # Tigervnc COPY 20-firefox.sh /app/init.d/ RUN chmod +x /app/init.d/* # Reset user home directory USER user WORKDIR /home/user Dockerfile ## Firefox setup cat >20-firefox.sh <<- 'entrypoint' #!/usr/bin/env bash # Create firefox profile directory mkdir -p /app/firefox # Firefox custom user.js cat >/app/firefox/user.js <<- 'firefox' // First run user_pref("app.normandy.first_run", false); user_pref("toolkit.telemetry.reportingpolicy.firstRun", false); user_pref("trailhead.firstrun.didSeeAboutWelcome", true); user_pref("browser.startup.homepage_override.mstone", "ignore"); // Homepage // user_pref("browser.startup.page", 1); // user_pref("browser.startup.homepage", "https://myvelabs.app/"); // Security/privacy section user_pref("app.shield.optoutstudies.enabled", false); user_pref("browser.contentblocking.category", "standard"); user_pref("datareporting.healthreport.uploadEnabled", false); user_pref("extensions.pocket.enabled", false); user_pref("dom.private-attribution.submission.enabled", false); user_pref("network.trr.mode", 5); // Disable sponsored content on Firefox Home (Activity Stream) user_pref("browser.newtabpage.activity-stream.showSearch", false); user_pref("browser.newtabpage.activity-stream.showSponsored", false); user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false); user_pref("browser.newtabpage.activity-stream.default.sites", ""); user_pref("browser.newtabpage.activity-stream.topSitesRows", 4); // Disable about:config warning user_pref("browser.aboutConfig.showWarning", false); // Disable url autocomplete user_pref("browser.search.suggest.enabled", false); user_pref("browser.urlbar.suggest.recentsearches", false); user_pref("browser.urlbar.suggest.searches", false); // Closing firefox properties user_pref("browser.warnOnQuitShortcut", false); user_pref("browser.tabs.closeWindowWithLastTab", false); // Disable autohide toolbar on fullscreen user_pref("browser.fullscreen.autohide", false); firefox # # i3/firefox config # cat >~/.config/i3/config.d/firefox.conf <<- 'firefox' # # Maximize # for_window [class="firefox"] fullscreen enable # firefox # i3/firefox startup install /dev/stdin ~/.config/i3/startapp.sh <<- startup #!/usr/bin/env bash # Run firefox while true do /usr/bin/firefox --profile /app/firefox ${MYVNC_FIREFOX_OPTS} --new-window ${MYVNC_FIREFOX_URL} done startup entrypoint ## Docker build DOCKER_BUILDKIT=1 docker build ./. \ --tag myvnc/firefox \ && rm -f Dockerfile *.sh