DockerCompose构建开发环境
好方
好方
发布于 2023-06-08 / 57 阅读 / 0 评论 / 0 点赞

DockerCompose构建开发环境

说明

本文承接上文:从零构建1个开发镜像 - 好方 (kengdie.xyz)

开发镜像中新增了ssh服务,这样子就可以远程链接容器,进行开发,也可以将自己的环境提供给其他人,避免将root密码泄露

开发镜像优化

SSH的root密码为Admin12345..,具体见Dockerfile中缩写

Dockerfile优化如下

FROM harbor.kengdie.xyz/k8s/library/ubuntu:22.04

COPY sources.list /etc/apt/sources.list
COPY node-v18.16.0-linux-x64.tar.xz /tmp/node-v18.16.0-linux-x64.tar.xz
COPY pnpm-install.sh /tmp/pnpm-install.sh

RUN apt update && apt install -y mysql-client redis net-tools iputils-ping iproute2 openssh-server openssh-client curl vim wget git python3 python3-pip && python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip && pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && tar xvf /tmp/node-v18.16.0-linux-x64.tar.xz -C /usr/local/ && export PATH=$PATH:/usr/local/node-v18.16.0-linux-x64/bin/ && echo "export PATH=$PATH:/usr/local/node-v18.16.0-linux-x64/bin/" >> ~/.bashrc && npm set registry https://registry.npm.taobao.org && npm install -g npm@9.7.1 && npm install -g pnpm && pnpm set registry https://registry.npm.taobao.org && apt clean && rm -rf /tmp/* && mkdir /run/sshd && sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && sed -i "s/#UseDNS.*/UseDNS no/g" /etc/ssh/sshd_config && echo root:Admin12345.. | chpasswd

EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

编译以及推送入库

docker build . --no-cache -t harbor.kengdie.xyz/k8s/ubuntu:22.04-dev08

DockerCompose添加开发依赖

docker-compose.yaml如下

version: '3'
services:
  code:
    image: harbor.kengdie.xyz/k8s/ubuntu:22.04-20230619-dev01
    ports:
      - "22098:22"
    volumes:
      - "/code/:/code/"
    networks:
      - code
    links:
      - "mysql:mysql"
      - "redis:redis"
  mysql:
    image: harbor.kengdie.xyz/k8s/mysql:8
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: test
    networks:
      - code
  redis:
    image: harbor.kengdie.xyz/k8s/redis:7
    networks:
      - code
networks:
  code:
    driver: bridge

启动

docker-compose -f docker-compose.yaml up -d 

即可如下

连接后,正常远程开发即可

关闭服务器的防火墙,使用vscode的远程开发,通过ssh连接即可


评论