原文

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

內容直接複製貼上…

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

Buy Me A Coffee

Evan

Attitude is everything