有时候出门在外,需要修改一个bug却苦于没有开发环境,一个远程的开发机的重要性便凸现出来。
传统的配置vncserver的方式需要安装大量的软件包,对于系统整洁强迫症来说便难以忍受。使用Docker的方式把整个环境打包,需要时启动,不需要时remove掉,不仅可以保持服务器干净整洁,还可以实现工作环境的快速迁移。

部署流程

  • 寻找一个基础的vncserver的docker镜像,我这里在GitHub上找到一个不错的镜像:https://github.com/queeno/docker-ubuntu-desktop。它配置很简单,就是基于Ubuntu:16.04,安装tightvncserver和相关的软件包,然后把xstartup配置文件和passwd密码文件复制到镜像中(默认密码是password)。
FROM ubuntu:16.04

ENV DEBIAN_FRONTEND noninteractive
ENV USER root

RUN apt-get update && \
    apt-get install -y --no-install-recommends ubuntu-desktop && \
    apt-get install -y gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal && \
    apt-get install -y tightvncserver && \
    mkdir /root/.vnc

ADD xstartup /root/.vnc/xstartup
ADD passwd /root/.vnc/passwd

RUN chmod 600 /root/.vnc/passwd

CMD /usr/bin/vncserver :1 -geometry 1280x800 -depth 24 && tail -f /root/.vnc/*:1.log

EXPOSE 5901
  • 修改软件源:
    • 这个包使用的Ubuntu:16.04使用的是国外的软件源,导致build的速度非常慢,这里可以改成使用国内软件源的镜像,我这里做了一个
FROM akkz/docker-ubuntu-chinese-resources:release-14.04
  • 增加中文的字体支持
    • RUN chmod 600 /root/.vnc/passwd后面加上
RUN apt-get install -y ttf-wqy-microhei && \
    apt-get install -y ttf-wqy-zenhei && \
    apt-get install -y xfonts-wqy
  • 如果有需要,加上GBK支持的命令,格式和上面相同

  • 加上工作所需要的软件的安装指令,如:

RUN apt-get install -y firefox
  • 启动镜像

注意事项

  • 有时候中文乱码可能因为字体没有装,不要陷在GBK的安装中。
  • 用docker-compose可以提高部署效率
  • 端口可以映射到其它端口,提高安全性