docker + VSC 打造完美本地开发环境

2020-07-24  本文已影响0人  Rediculous

引言

windows是什么,用来办公的,不是用来开发的,(这里没有任何诋毁windows的地方,但是当你经历过windows下能编译,Linux下不能编译;windows是dll,Linux是so的时候你就会懂了)
从另一个角度说,把开发环境、测试环境、甚至线上环境的系统层面整成一致,确实是非常的方便
再者,现在更换电脑是平常的事儿,你还记得有多少软件要装吗,还记得maven怎么配置的吗,还记得pip源怎么配置的吗,习惯好的会有记录,不过这些东西每次都配置一下是不想死,是不得耗一天的时间

综上,我们的原则是windows就是用来办公的,只要装一点软件,比如office,稍微抛砖引玉一下,目前几乎完美的解决方案

安装docker

exe 一路向前

安装VSC

exe 一路向前

配置docker 镜像加速

image.png
{
  "registry-mirrors": [
    "http://f1361db2.m.daocloud.io",
    "http://ovfftd6p.mirror.aliyuncs.com",
    "http://registry.docker-cn.com",
    "http://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ],
  "insecure-registries": [
    "registry.docker-cn.com",
    "docker.mirrors.ustc.edu.cn"
  ],
  "debug": true,
  "experimental": false
}

编写Dockerfile

FROM centos:7.8.2003

MAINTAINER Joey

# 修改默认时区和字符集
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US.UTF-8
ENV LC_ALL en_US.UTF-8
RUN echo "export LANG=en_US.UTF-8" >>  /etc/bashrc  \
    && echo "export LANGUAGE=en_US.UTF-8" >>  /etc/bashrc  \
    && echo "export LC_ALL=en_US.UTF-8" >>  /etc/bashrc  \
    && source /etc/bashrc

# RUN rpm --import /etc/pki/rpm-gpg/RPM*

# 必要工具
RUN yum -y install which wget gcc gcc+ gcc-c++ make autoconf automake libtool


RUN mkdir /app


####################################################################################################
#
# JDK
#
####################################################################################################
RUN cd /app \
    && wget https://download.java.net/openjdk/jdk12/ri/openjdk-12+32_linux-x64_bin.tar.gz \
    && tar -zxvf openjdk-12+32_linux-x64_bin.tar.gz
ENV JAVA_HOME=/app/jdk-12
ENV PATH=$PATH:$JAVA_HOME/bin
# in case you want to ssh this container 
RUN echo "export JAVA_HOME=$JAVA_HOME" >>  /etc/bashrc  \
    && echo "export PATH=$PATH:$JAVA_HOME/bin" >>  /etc/bashrc \
    && source /etc/bashrc


####################################################################################################
#
# MAVEN
#
####################################################################################################
RUN cd /app \
    && wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz \
    && tar -zxvf apache-maven-3.6.3-bin.tar.gz 
ENV MAVEN_HOME /app/apache-maven-3.6.3
ENV PATH=$PATH:$MAVEN_HOME/bin
# in case you want to ssh this container 
RUN echo "export MAVEN_HOME=$MAVEN_HOME" >>  /etc/bashrc  \
    && echo "export PATH=$PATH:$MAVEN_HOME/bin" >>  /etc/bashrc \
    && source /etc/bashrc

####################################################################################################
#
# CMAKE
#
####################################################################################################
RUN cd /app \
    && wget https://cmake.org/files/v3.17/cmake-3.17.3.tar.gz \
    && tar -zxvf cmake-3.17.3.tar.gz \
    && cd /app/cmake-3.17.3 \
    && ./bootstrap \
    && make \
    && make install \
    && rm -rf /app/cmake-3.17.3


####################################################################################################
#
# PYTHON
#
####################################################################################################
RUN yum install -y zlib zlib-devel libffi-devel \
    && cd /app \
    && wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz \
    && cd /app/Python-3.8.2/ \
    && ./configure \
    && make \
    && make install \
    && python3 -m ensurepip --default-pip 


####################################################################################################
#
# SSH
#
####################################################################################################
#安装openssh-server
RUN yum -y install openssh-server \
    && sed -i 's/#Port 22/Port 22/g' /etc/ssh/sshd_config \
    && sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config \
    && sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/g' /etc/ssh/sshd_config \
    && echo "root:root"|chpasswd
    
EXPOSE 22

#运行脚本,启动sshd服务
CMD /usr/sbin/sshd -D

根据个人情况裁剪,其中包含了C++、Java、Python开发环境

创建镜像

docker build centos-dev:v1 .

启动镜像

docker run -d -p 1022:22 -p 1080:8080 --name="dev" --privileged  -it -e "container=docker"  -v /d/docker/data:/data centos-dev:v1  /usr/sbin/init

把22端口映射出来,方便ssh;
把8080端口银蛇出来,方便调试接口
当然如果系统中有多个端口的,都映射出来即可

建议挂载一个本地文件夹,交换文件方便

由于目前的版本管理中包含了文档,所以,还是在本地安装了SVN客户端,没在docker内安装

打开VSC 安装Remote-Container

image.png image.png

就可以了,VSC会自动在docker中安装必要工具

然后就是各种插件了,都装docker里

image.png

抛砖引玉一些,这边可以根据需要,自己安装

上一篇下一篇

猜你喜欢

热点阅读