docker 部署 vscode 远程开发环境(Go,Java)-2. 镜像构建

时间:2024-10-17 07:01:57

首先我们需要写一个 dockerfile

vim dockerfile
FROM golang:1.21

# 更新包源并安装必要的工具
RUN apt-get update && apt-get install -y \
    sudo \
    vim \
    openssh-server \
    openjdk-11-jdk \
    && apt-get clean

# 创建一个用户以便通过 SSH 进行远程连接
RUN useradd -m -s /bin/bash devuser && echo "devuser:qwe41235" | chpasswd && adduser devuser sudo

# 设置 SSH 服务器
RUN mkdir /var/run/sshd
RUN echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
RUN echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config

# 设置环境变量
ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
ENV GOROOT=/usr/local/go
ENV GOPATH=/go
ENV PATH=$GOROOT/bin:$GOPATH/bin:$JAVA_HOME/bin:$PATH

# 暴露 SSH 端口
EXPOSE 22

# 启动 SSH 服务
CMD ["/usr/sbin/sshd", "-D"]

这里我们最重要的是选一个基础镜像,这里使用的是 Go 的一个工具链镜像,这个镜像除了 Go 本身的依赖,本身就是一个 debian 的镜像,大致相当于docker 开了一个 linux 虚拟机,不过这个镜像一般足够精简,打包之后一般不会大于 1 个 g

重要软件

  1. Go 依赖
  2. Java 依赖
  3. SSH Server : 用于远程连接

然后打包镜像

docker build -t wnnzer/vscode:2.0 .