feat: 20.04

This commit is contained in:
Doro Wu 2020-05-16 21:08:35 +08:00
commit e6af070b74
No known key found for this signature in database
GPG key ID: 3F2E4F1C2D4A1AA4
8 changed files with 173 additions and 101 deletions

View file

@ -1,10 +1,10 @@
# Built with arch: amd64 flavor: lxqt image: ubuntu:18.04 localbuild: tw # Built with arch: amd64 flavor: lxqt image: ubuntu:20.04
# #
################################################################################ ################################################################################
# base system # base system
################################################################################ ################################################################################
FROM ubuntu:18.04 as system FROM ubuntu:20.04 as system
@ -24,20 +24,26 @@ RUN apt update \
&& apt autoremove -y \ && apt autoremove -y \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# install debs error if combine together # install debs error if combine together
RUN add-apt-repository -y ppa:fcwu-tw/apps \ RUN apt update \
&& apt update \
&& apt install -y --no-install-recommends --allow-unauthenticated \ && apt install -y --no-install-recommends --allow-unauthenticated \
xvfb x11vnc=0.9.16-1 \ xvfb x11vnc \
vim-tiny firefox chromium-browser ttf-ubuntu-font-family ttf-wqy-zenhei \ vim-tiny firefox ttf-ubuntu-font-family ttf-wqy-zenhei \
&& add-apt-repository -r ppa:fcwu-tw/apps \
&& apt autoclean -y \ && apt autoclean -y \
&& apt autoremove -y \ && apt autoremove -y \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
RUN apt update \
&& apt install -y gpg-agent \
&& curl -LO https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
&& (dpkg -i ./google-chrome-stable_current_amd64.deb || apt-get install -fy) \
&& curl -sSL https://dl.google.com/linux/linux_signing_key.pub | apt-key add \
&& rm google-chrome-stable_current_amd64.deb \
&& rm -rf /var/lib/apt/lists/*
RUN apt update \ RUN apt update \
&& apt install -y --no-install-recommends --allow-unauthenticated \ && apt install -y --no-install-recommends --allow-unauthenticated \
lxqt openbox gtk2-engines-murrine gnome-themes-standard gtk2-engines-pixbuf arc-theme \ lxqt openbox lxqt-themes \
&& apt autoclean -y \ && apt autoclean -y \
&& apt autoremove -y \ && apt autoremove -y \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
@ -62,8 +68,9 @@ RUN apt update \
COPY rootfs/usr/local/lib/web/backend/requirements.txt /tmp/ COPY rootfs/usr/local/lib/web/backend/requirements.txt /tmp/
RUN apt-get update \ RUN apt-get update \
&& dpkg-query -W -f='${Package}\n' > /tmp/a.txt \ && dpkg-query -W -f='${Package}\n' > /tmp/a.txt \
&& apt-get install -y python-pip python-dev build-essential \ && apt-get install -y python3-pip python3-dev build-essential \
&& pip install setuptools wheel && pip install -r /tmp/requirements.txt \ && pip3 install setuptools wheel && pip3 install -r /tmp/requirements.txt \
&& ln -s /usr/bin/python3 /usr/local/bin/python \
&& dpkg-query -W -f='${Package}\n' > /tmp/b.txt \ && dpkg-query -W -f='${Package}\n' > /tmp/b.txt \
&& apt-get remove -y `diff --changed-group-format='%>' --unchanged-group-format='' /tmp/a.txt /tmp/b.txt | xargs` \ && apt-get remove -y `diff --changed-group-format='%>' --unchanged-group-format='' /tmp/a.txt /tmp/b.txt | xargs` \
&& apt-get autoclean -y \ && apt-get autoclean -y \
@ -71,11 +78,13 @@ RUN apt-get update \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& rm -rf /var/cache/apt/* /tmp/a.txt /tmp/b.txt && rm -rf /var/cache/apt/* /tmp/a.txt /tmp/b.txt
RUN cp -R /usr/share/icons/ubuntu-mono-light/* /usr/share/icons/hicolor/
################################################################################ ################################################################################
# builder # builder
################################################################################ ################################################################################
FROM ubuntu:18.04 as builder FROM ubuntu:20.04 as builder
RUN sed -i 's#http://archive.ubuntu.com/ubuntu/#mirror://mirrors.ubuntu.com/mirrors.txt#' /etc/apt/sources.list; RUN sed -i 's#http://archive.ubuntu.com/ubuntu/#mirror://mirrors.ubuntu.com/mirrors.txt#' /etc/apt/sources.list;
@ -116,7 +125,7 @@ RUN ln -sf /usr/local/lib/web/frontend/static/websockify /usr/local/lib/web/fron
EXPOSE 80 EXPOSE 80
WORKDIR /root WORKDIR /root
ENV HOME=/home/ubuntu \ ENV HOME=/root \
SHELL=/bin/bash SHELL=/bin/bash
HEALTHCHECK --interval=30s --timeout=5s CMD curl --fail http://127.0.0.1:6079/api/health HEALTHCHECK --interval=30s --timeout=5s CMD curl --fail http://127.0.0.1:6079/api/health
ENTRYPOINT ["/startup.sh"] ENTRYPOINT ["/startup.sh"]

View file

@ -4,11 +4,7 @@
REPO ?= dorowu/ubuntu-desktop-lxde-vnc REPO ?= dorowu/ubuntu-desktop-lxde-vnc
TAG ?= latest TAG ?= latest
# you can choose other base image versions # you can choose other base image versions
IMAGE ?= ubuntu:18.04 IMAGE ?= ubuntu:20.04
LOCALBUILD ?= tw
HTTP_PASSWORD ?= 123456
CUSTOM_USER ?= ubuntu
PASSWORD ?= ubuntu
# choose from supported flavors (see available ones in ./flavors/*.yml) # choose from supported flavors (see available ones in ./flavors/*.yml)
FLAVOR ?= lxqt FLAVOR ?= lxqt
# armhf or amd64 # armhf or amd64
@ -24,11 +20,9 @@ build: $(templates)
# Test run the container # Test run the container
# the local dir will be mounted under /src read-only # the local dir will be mounted under /src read-only
run: run:
docker run --rm \ docker run --privileged --rm \
-p 6080:80 -p 6081:443 \ -p 6080:80 -p 6081:443 \
-v ${PWD}:/src:ro \ -v ${PWD}:/src:ro \
-e USER=doro -e PASSWORD=mypassword \
-e ALSADEV=hw:2,0 \
-e SSL_PORT=443 \ -e SSL_PORT=443 \
-e RELATIVE_URL_ROOT=approot \ -e RELATIVE_URL_ROOT=approot \
-v ${PWD}/ssl:/etc/nginx/ssl \ -v ${PWD}/ssl:/etc/nginx/ssl \

View file

@ -1,20 +1,7 @@
# DO NOT EDIT! This file will be overwritten by LXAppearance. # Created by lxqt-config-appearance (DO NOT EDIT!)
# Any customization should be done in ~/.gtkrc-2.0.mine instead. gtk-theme-name = "Raleigh"
include "/usr/share/themes/Arc/gtk-2.0/gtkrc" gtk-icon-theme-name = "LoginIcons"
gtk-font-name = "Sans 11"
gtk-theme-name="Arc"
gtk-icon-theme-name="nuoveXT2"
gtk-font-name="Sans 10"
gtk-cursor-theme-name="DMZ-White"
gtk-cursor-theme-size=18
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images = 1 gtk-button-images = 1
gtk-menu-images = 1 gtk-menu-images = 1
gtk-enable-event-sounds=1 gtk-toolbar-style = GTK_TOOLBAR_BOTH_HORIZ
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle="hintslight"
gtk-xft-rgba="rgb"
include "/root/.gtkrc-2.0.mine"

View file

@ -5,4 +5,4 @@ if [ -z "$ALSADEV" ]; then
exit 1 exit 1
fi fi
exec /usr/bin/chromium-browser --no-sandbox --alsa-output-device="$ALSADEV" "$@" exec /usr/bin/google-chrome --no-sandbox --alsa-output-device="$ALSADEV" "$@"

View file

@ -1,4 +1,4 @@
#!/usr/bin/env python #!/usr/bin/env python3
from __future__ import ( from __future__ import (
absolute_import, division, print_function, with_statement absolute_import, division, print_function, with_statement
) )

View file

@ -151,7 +151,7 @@ def liveflv():
cmd, cmd,
stdout=gsp.PIPE, stdout=gsp.PIPE,
stderr=gsp.PIPE, stderr=gsp.PIPE,
env={k: str(v) for k, v in xenvs.iteritems()}, env={k: str(v) for k, v in xenvs.items()},
) )
def readerr(f): def readerr(f):

View file

@ -31,7 +31,7 @@ class State(object):
output = gsp.check_output([ output = gsp.check_output([
'supervisorctl', '-c', '/etc/supervisor/supervisord.conf', 'supervisorctl', '-c', '/etc/supervisor/supervisord.conf',
'status' 'status'
]) ], encoding='UTF-8')
for line in output.strip().split('\n'): for line in output.strip().split('\n'):
if not line.startswith('web') and line.find('RUNNING') < 0: if not line.startswith('web') and line.find('RUNNING') < 0:
health = False health = False

View file

@ -1,139 +1,221 @@
[Desktop Entry] [Desktop Entry]
Version=1.0 Version=1.0
Name=Chromium Web Browser Sound Name=Google Chrome Sound
# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
GenericName=Web Browser GenericName=Web Browser
GenericName[ar]=متصفح الشبكة GenericName[ar]=متصفح الشبكة
GenericName[ast]=Restolador web
GenericName[bg]=Уеб браузър GenericName[bg]=Уеб браузър
GenericName[bn]=
GenericName[bs]=Web preglednik
GenericName[ca]=Navegador web GenericName[ca]=Navegador web
GenericName[ca@valencia]=Navegador web
GenericName[cs]=WWW prohlížeč GenericName[cs]=WWW prohlížeč
GenericName[da]=Browser GenericName[da]=Browser
GenericName[de]=Web-Browser GenericName[de]=Web-Browser
GenericName[el]=Περιηγητής ιστού GenericName[el]=Περιηγητής ιστού
GenericName[en_AU]=Web Browser
GenericName[en_GB]=Web Browser GenericName[en_GB]=Web Browser
GenericName[eo]=Retfoliumilo
GenericName[es]=Navegador web GenericName[es]=Navegador web
GenericName[et]=Veebibrauser GenericName[et]=Veebibrauser
GenericName[eu]=Web-nabigatzailea
GenericName[fi]=WWW-selain GenericName[fi]=WWW-selain
GenericName[fil]=Web Browser
GenericName[fr]=Navigateur Web GenericName[fr]=Navigateur Web
GenericName[gl]=Navegador web
GenericName[gu]= GenericName[gu]=
GenericName[he]=דפדפן אינטרנט GenericName[he]=דפדפן אינטרנט
GenericName[hi]= GenericName[hi]=
GenericName[hr]=Web preglednik
GenericName[hu]=Webböngésző GenericName[hu]=Webböngésző
GenericName[hy]=Ոստայն զննարկիչ GenericName[it]=Browser Web
GenericName[ia]=Navigator del Web GenericName[ja]=
GenericName[id]=Peramban Web
GenericName[it]=Browser web
GenericName[ja]=
GenericName[ka]=
GenericName[kn]= GenericName[kn]=
GenericName[ko]= GenericName[ko]=
GenericName[kw]=Peurel wias
GenericName[lt]=Žiniatinklio naršyklė GenericName[lt]=Žiniatinklio naršyklė
GenericName[lv]=Tīmekļa pārlūks GenericName[lv]=Tīmekļa pārlūks
GenericName[ml]= GenericName[ml]=
GenericName[mr]= GenericName[mr]=
GenericName[ms]=Pelayar Web
GenericName[nb]=Nettleser GenericName[nb]=Nettleser
GenericName[nl]=Webbrowser GenericName[nl]=Webbrowser
GenericName[or]=
GenericName[pl]=Przeglądarka WWW GenericName[pl]=Przeglądarka WWW
GenericName[pt]=Navegador Web GenericName[pt]=Navegador Web
GenericName[pt_BR]=Navegador web GenericName[pt_BR]=Navegador da Internet
GenericName[ro]=Navigator de Internet GenericName[ro]=Navigator de Internet
GenericName[ru]=Веб-браузер GenericName[ru]=Веб-браузер
GenericName[sk]=WWW prehliadač
GenericName[sl]=Spletni brskalnik GenericName[sl]=Spletni brskalnik
GenericName[sr]=Интернет прегледник
GenericName[sv]=Webbläsare GenericName[sv]=Webbläsare
GenericName[ta]= ி GenericName[ta]= ி
GenericName[te]= ి
GenericName[th]= GenericName[th]=
GenericName[tr]=Web Tarayıcı GenericName[tr]=Web Tarayıcı
GenericName[ug]=توركۆرگۈ
GenericName[uk]=Навігатор Тенет GenericName[uk]=Навігатор Тенет
GenericName[vi]=B duyt Web
GenericName[zh_CN]= GenericName[zh_CN]=
GenericName[zh_HK]= GenericName[zh_HK]=
GenericName[zh_TW]= GenericName[zh_TW]=
# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1.
GenericName[bn]=
GenericName[fil]=Web Browser
GenericName[hr]=Web preglednik
GenericName[id]=Browser Web
GenericName[or]=
GenericName[sk]=WWW prehliadač
GenericName[sr]=Интернет прегледник
GenericName[te]= ి
GenericName[vi]=B duyt Web
# Gnome and KDE 3 uses Comment.
Comment=Access the Internet Comment=Access the Internet
Comment[ar]=الدخول إلى الإنترنت Comment[ar]=الدخول إلى الإنترنت
Comment[ast]=Accesu a Internet
Comment[bg]=Достъп до интернет Comment[bg]=Достъп до интернет
Comment[bn]= Comment[bn]=ি
Comment[bs]=Pristup internetu Comment[ca]=Accedeix a Internet
Comment[ca]=Accediu a Internet
Comment[ca@valencia]=Accediu a Internet
Comment[cs]=Přístup k internetu Comment[cs]=Přístup k internetu
Comment[da]=Få adgang til internettet Comment[da]=Få adgang til internettet
Comment[de]=Internetzugriff Comment[de]=Internetzugriff
Comment[el]=Πρόσβαση στο Διαδίκτυο Comment[el]=Πρόσβαση στο Διαδίκτυο
Comment[en_AU]=Access the Internet
Comment[en_GB]=Access the Internet Comment[en_GB]=Access the Internet
Comment[eo]=Akiri interreton Comment[es]=Accede a Internet.
Comment[es]=Acceda a Internet
Comment[et]=Pääs Internetti Comment[et]=Pääs Internetti
Comment[eu]=Sartu Internetera
Comment[fi]=Käytä internetiä Comment[fi]=Käytä internetiä
Comment[fil]=I-access ang Internet Comment[fil]=I-access ang Internet
Comment[fr]=Accéder à Internet Comment[fr]=Accéder à Internet
Comment[gl]=Acceda a Internet
Comment[gu]= Comment[gu]=
Comment[he]=גישה לאינטרנט Comment[he]=גישה אל האינטרנט
Comment[hi]= ि Comment[hi]= ि
Comment[hr]=Pristupite Internetu Comment[hr]=Pristup Internetu
Comment[hu]=Az internet elérése Comment[hu]=Internetelérés
Comment[hy]=Մուտք համացանց
Comment[ia]=Accede a le Interrete
Comment[id]=Akses Internet Comment[id]=Akses Internet
Comment[it]=Accesso a Internet Comment[it]=Accesso a Internet
Comment[ja]= Comment[ja]=
Comment[ka]=
Comment[kn]= ಿಿ Comment[kn]= ಿಿ
Comment[ko]= Comment[ko]=
Comment[kw]=Hedhes an Kesrosweyth
Comment[lt]=Interneto prieiga Comment[lt]=Interneto prieiga
Comment[lv]=Piekļūt internetam Comment[lv]=Piekļūt internetam
Comment[ml]= Comment[ml]=
Comment[mr]= Comment[mr]=
Comment[ms]=Mengakses Internet Comment[nb]=Gå til Internett
Comment[nb]=Bruk internett
Comment[nl]=Verbinding maken met internet Comment[nl]=Verbinding maken met internet
Comment[or]= Comment[or]=
Comment[pl]=Skorzystaj z internetu Comment[pl]=Skorzystaj z internetu
Comment[pt]=Aceder à Internet Comment[pt]=Aceder à Internet
Comment[pt_BR]=Acessar a internet Comment[pt_BR]=Acessar a internet
Comment[ro]=Accesați Internetul Comment[ro]=Accesaţi Internetul
Comment[ru]=Доступ в Интернет Comment[ru]=Доступ в Интернет
Comment[sk]=Prístup do siete Internet Comment[sk]=Prístup do siete Internet
Comment[sl]=Dostop do interneta Comment[sl]=Dostop do interneta
Comment[sr]=Приступите Интернету Comment[sr]=Приступите Интернету
Comment[sv]=Surfa på Internet Comment[sv]=Gå ut på Internet
Comment[ta]= Comment[ta]=
Comment[te]= ి Comment[te]= ి
Comment[th]= Comment[th]=
Comment[tr]=İnternet'e erişin Comment[tr]=İnternet'e erişin
Comment[ug]=ئىنتېرنېت زىيارىتى
Comment[uk]=Доступ до Інтернету Comment[uk]=Доступ до Інтернету
Comment[vi]=Truy cp Internet Comment[vi]=Truy cp Internet
Comment[zh_CN]=访 Comment[zh_CN]=访
Comment[zh_HK]= Comment[zh_HK]=
Comment[zh_TW]= Comment[zh_TW]=
Exec=/usr/local/bin/chromium-browser-sound.sh %U Exec=/usr/local/bin/chromium-browser-sound.sh %U
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=chromium-browser
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml_xml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true StartupNotify=true
Actions=NewWindow;Incognito;TempProfile; Terminal=false
X-AppInstall-Package=chromium-browser Icon=google-chrome
Type=Application
Categories=Network;WebBrowser;
MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/ftp;x-scheme-handler/http;x-scheme-handler/https;
Actions=new-window;new-private-window;
[Desktop Action new-window]
Name=New Window
Name[am]=
Name[ar]=نافذة جديدة
Name[bg]=Нов прозорец
Name[bn]=
Name[ca]=Finestra nova
Name[cs]=Nové okno
Name[da]=Nyt vindue
Name[de]=Neues Fenster
Name[el]=Νέο Παράθυρο
Name[en_GB]=New Window
Name[es]=Nueva ventana
Name[et]=Uus aken
Name[fa]=پنجره جدید
Name[fi]=Uusi ikkuna
Name[fil]=New Window
Name[fr]=Nouvelle fenêtre
Name[gu]= િ
Name[hi]= ि
Name[hr]=Novi prozor
Name[hu]=Új ablak
Name[id]=Jendela Baru
Name[it]=Nuova finestra
Name[iw]=חלון חדש
Name[ja]=
Name[kn]= ಿ
Name[ko]=
Name[lt]=Naujas langas
Name[lv]=Jauns logs
Name[ml]=ി ി
Name[mr]= ि
Name[nl]=Nieuw venster
Name[no]=Nytt vindu
Name[pl]=Nowe okno
Name[pt]=Nova janela
Name[pt_BR]=Nova janela
Name[ro]=Fereastră nouă
Name[ru]=Новое окно
Name[sk]=Nové okno
Name[sl]=Novo okno
Name[sr]=Нови прозор
Name[sv]=Nytt fönster
Name[sw]=Dirisha Jipya
Name[ta]=ி
Name[te]= ి
Name[th]=
Name[tr]=Yeni Pencere
Name[uk]=Нове вікно
Name[vi]=Ca s Mi
Name[zh_CN]=
Name[zh_TW]=
Exec=/usr/bin/google-chrome-stable
[Desktop Action new-private-window]
Name=New Incognito Window
Name[ar]=نافذة جديدة للتصفح المتخفي
Name[bg]=Нов прозорец инкогнито
Name[bn]=
Name[ca]=Finestra d'incògnit nova
Name[cs]=Nové anonymní okno
Name[da]=Nyt inkognitovindue
Name[de]=Neues Inkognito-Fenster
Name[el]=Νέο παράθυρο για ανώνυμη περιήγηση
Name[en_GB]=New Incognito window
Name[es]=Nueva ventana de incógnito
Name[et]=Uus inkognito aken
Name[fa]=پنجره جدید حالت ناشناس
Name[fi]=Uusi incognito-ikkuna
Name[fil]=Bagong Incognito window
Name[fr]=Nouvelle fenêtre de navigation privée
Name[gu]= િ
Name[hi]= ि
Name[hr]=Novi anoniman prozor
Name[hu]=Új Inkognitóablak
Name[id]=Jendela Penyamaran baru
Name[it]=Nuova finestra di navigazione in incognito
Name[iw]=חלון חדש לגלישה בסתר
Name[ja]=
Name[kn]= ಿ
Name[ko]= 릿
Name[lt]=Naujas inkognito langas
Name[lv]=Jauns inkognito režīma logs
Name[ml]=ി ി
Name[mr]= ि
Name[nl]=Nieuw incognitovenster
Name[no]=Nytt inkognitovindu
Name[pl]=Nowe okno incognito
Name[pt]=Nova janela de navegação anónima
Name[pt_BR]=Nova janela anônima
Name[ro]=Fereastră nouă incognito
Name[ru]=Новое окно в режиме инкогнито
Name[sk]=Nové okno inkognito
Name[sl]=Novo okno brez beleženja zgodovine
Name[sr]=Нови прозор за прегледање без архивирања
Name[sv]=Nytt inkognitofönster
Name[ta]=ி ி
Name[te]= ి
Name[th]=
Name[tr]=Yeni Gizli pencere
Name[uk]=Нове вікно в режимі анонімного перегляду
Name[vi]=Ca s n danh mi
Name[zh_CN]=
Name[zh_TW]=
Exec=/usr/bin/google-chrome-stable --incognito