August 6th, 2016
原文
Bring Linux apps to the Mac Desktop with Docker
好處:
- 某些 App 只出 Linux App 版本,卻沒有 MacOSX
- 透過 sandbox 的方式執行程式
相關準備:
先裝 X11 Client - xquartz
brew install Caskroom/cask/xquartz
安裝 TCP/UDP mapping 工具 SOCAT
brew install socat
撰寫相關的 Dockerfile
vi Dockerfile
內容直接複製貼上…
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM debian:stretch | |
ENV LC_ALL en_US.UTF-8 | |
ENV LANG en_US.UTF-8 | |
RUN apt-get update && apt-get install -y \ | |
apt-transport-https \ | |
ca-certificates \ | |
curl \ | |
gconf2 \ | |
gconf-service \ | |
gvfs-bin \ | |
hunspell-en-us \ | |
libasound2 \ | |
libgtk2.0-0 \ | |
libnotify4 \ | |
libnss3 \ | |
libxss1 \ | |
libxtst6 \ | |
locales \ | |
python \ | |
xdg-utils \ | |
libgnome-keyring0 \ | |
gir1.2-gnomekeyring-1.0 \ | |
libappindicator1 \ | |
--no-install-recommends | |
RUN rm -rf /var/lib/apt/lists/* | |
RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ | |
&& locale-gen en_US.utf8 \ | |
&& /usr/sbin/update-locale LANG=en_US.UTF-8 | |
ADD ./slack-desktop-2.1.0-amd64.deb ./ | |
RUN dpkg -i slack-desktop-2.1.0-amd64.deb | |
ENTRYPOINT ["slack"] |
開始吧
先下載這次範例程式 slack linux 版本
wget https://downloads.slack-edge.com/linux_releases/slack-desktop-2.1.0-amd64.deb
先在另外一個 teminal 跑 SOCAT
socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"
記得不要關掉,這是對應 X11 Client/Server 對應的部分
編譯 Docker Image
docker build -t slack:2.1.0 .
跑起來吧
docker run -e DISPLAY=192.168.0.15:0 --name slack -d slack:2.1.0