FROM centos:latest
  LABEL maintainer "wojiushixiaobai"
  WORKDIR /opt
   
  ENV GUAC_VER=0.9.14 \
  LUNA_VER=1.5.0 \
  TOMCAT_VER=8.5.41
   
  RUN set -ex \
  && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  && yum -y install kde-l10n-Chinese \
  && yum -y reinstall glibc-common \
  && localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 \
  && export LC_ALL=zh_CN.UTF-8 \
  && echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf \
  && yum -y install wget gcc epel-release git yum-utils \
  && yum -y install python36 python36-devel \
  && yum -y localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm \
  && rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro \
  && rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm \
  && yum install -y java-1.8.0-openjdk libtool \
  && mkdir /usr/local/lib/freerdp/ \
  && ln -s /usr/local/lib/freerdp /usr/lib64/freerdp \
  && yum install -y cairo-devel libjpeg-turbo-devel libpng-devel uuid-devel \
  && yum install -y ffmpeg-devel freerdp-devel freerdp-plugins pango-devel libssh2-devel libtelnet-devel libvncserver-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel ghostscript \
  && echo -e "[nginx-stable]\nname=nginx stable repo\nbaseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/\ngpgcheck=1\nenabled=1\ngpgkey=https://nginx.org/keys/nginx_signing.key" > /etc/yum.repos.d/nginx.repo \
  && rpm --import https://nginx.org/keys/nginx_signing.key \
  && yum -y install mariadb mariadb-devel mariadb-server redis nginx \
  && rm -rf /etc/nginx/conf.d/default.conf \
  && mkdir -p /config/guacamole /config/guacamole/lib /config/guacamole/extensions \
  && wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v${TOMCAT_VER}/bin/apache-tomcat-${TOMCAT_VER}.tar.gz \
  && tar xf apache-tomcat-${TOMCAT_VER}.tar.gz -C /config \
  && rm -rf apache-tomcat-${TOMCAT_VER}.tar.gz \
  && mv /config/apache-tomcat-${TOMCAT_VER} /config/tomcat8 \
  && rm -rf /config/tomcat8/webapps/* \
  && sed -i 's/Connector port="8080"/Connector port="8081"/g' `grep 'Connector port="8080"' -rl /config/tomcat8/conf/server.xml` \
  && sed -i 's/FINE/WARNING/g' `grep 'FINE' -rl /config/tomcat8/conf/logging.properties` \
  && echo "java.util.logging.ConsoleHandler.encoding = UTF-8" >> /config/tomcat8/conf/logging.properties \
  && yum clean all \
  && rm -rf /var/cache/yum/*
   
  RUN set -ex \
  && git clone --depth=1 https://github.com/jumpserver/jumpserver.git \
  && git clone --depth=1 https://github.com/jumpserver/coco.git \
  && git clone --depth=1 https://github.com/jumpserver/docker-guacamole.git \
  && wget https://github.com/jumpserver/luna/releases/download/${LUNA_VER}/luna.tar.gz \
  && tar xf luna.tar.gz \
  && chown -R root:root luna \
  && yum -y install $(cat /opt/jumpserver/requirements/rpm_requirements.txt) \
  && yum -y install $(cat /opt/coco/requirements/rpm_requirements.txt) \
  && python3.6 -m venv /opt/py3 \
  && source /opt/py3/bin/activate \
  && pip install --upgrade pip setuptools \
  && pip install -r /opt/jumpserver/requirements/requirements.txt \
  && pip install -r /opt/coco/requirements/requirements.txt \
  && cd docker-guacamole \
  && tar xf guacamole-server-${GUAC_VER}.tar.gz \
  && cd guacamole-server-${GUAC_VER} \
  && autoreconf -fi \
  && ./configure --with-init-dir=/etc/init.d \
  && make \
  && make install \
  && cd .. \
  && ln -sf /opt/docker-guacamole/guacamole-${GUAC_VER}.war /config/tomcat8/webapps/ROOT.war \
  && ln -sf /opt/docker-guacamole/guacamole-auth-jumpserver-${GUAC_VER}.jar /config/guacamole/extensions/guacamole-auth-jumpserver-${GUAC_VER}.jar \
  && ln -sf /opt/docker-guacamole/root/app/guacamole/guacamole.properties /config/guacamole/guacamole.properties \
  && rm -rf guacamole-server-${GUAC_VER} \
  && ldconfig \
  && cd /opt \
  && wget https://github.com/ibuler/ssh-forward/releases/download/v0.0.5/linux-amd64.tar.gz \
  && tar xf linux-amd64.tar.gz -C /bin/ \
  && chmod +x /bin/ssh-forward \
  && mkdir -p /opt/coco/keys /opt/coco/logs \
  && wget -O /etc/nginx/conf.d/jumpserver.conf https://demo.jumpserver.org/download/nginx/conf.d/jumpserver.conf \
  && yum clean all \
  && rm -rf /var/cache/yum/* \
  && rm -rf /opt/luna.tar.gz \
  && rm -rf /var/cache/yum/* \
  && rm -rf ~/.cache/pip \
  && rm -rf /opt/linux-amd64.tar.gz
   
  COPY readme.txt readme.txt
  COPY entrypoint.sh /bin/entrypoint.sh
  RUN chmod +x /bin/entrypoint.sh
   
  VOLUME /opt/jumpserver/data/media
  VOLUME /var/lib/mysql
   
  ENV SECRET_KEY=kWQdmdCQKjaWlHYpPhkNQDkfaRulM6YnHctsHLlSPs8287o2kW \
  BOOTSTRAP_TOKEN=KXOeyNgDeTdpeu9q
   
  ENV DB_ENGINE=mysql \
  DB_HOST=127.0.0.1 \
  DB_PORT=3306 \
  DB_USER=jumpserver \
  DB_PASSWORD=weakPassword \
  DB_NAME=jumpserver
   
  ENV REDIS_HOST=127.0.0.1 \
  REDIS_PORT=6379 \
  REDIS_PASSWORD=
   
  ENV JUMPSERVER_KEY_DIR=/config/guacamole/keys \
  GUACAMOLE_HOME=/config/guacamole \
  JUMPSERVER_ENABLE_DRIVE=true \
  JUMPSERVER_SERVER=http://127.0.0.1:8080
   
  EXPOSE 80 2222
  ENTRYPOINT ["entrypoint.sh"]

centos Dockerfile的更多相关文章

  1. 使用dockerfile,创建gitblit镜像

    1. 快速使用gitblit镜像 1.1 push 镜像 # docker pull /gitblit 1.2 查看下载的镜像 # docker images | grep "gitblit ...

  2. docker使用Dockerfile构建ssh容器

    一.使用Dockerfile构建centos 1.创建 Dockerfile mkdir centos # 创建一个目录存放之后的Dockerfile,目录名无所谓 cd centos # 进入目录 ...

  3. Dockerfile构建镜像实战

    目录 一.常见Dockerfile指令 二.编写Centos Dockerfile 2.1.编写Dockerfile 2.2.构建 2.3.查看Docker镜像 2.4.运行镜像 三.CMD和ENTR ...

  4. Docker的基本使用及DockerFile的编写

    前言: 最近在准备面试,在复习到Docker相关内容时,想写一些东西分享给大家然后加深一下自己的印象,有了这篇随笔. Docker的简介: docker从文件系统.网络互连到进程隔离等等,极大的简化了 ...

  5. docker 常用命令(*)

    查找镜像 https://hub.docker.com/ search  --> centos7 一般docker 会有一个基础镜像,中间件镜像,应用镜像,生成一个镜像 docker build ...

  6. docker 12 docker容器数据卷

    数据卷概念 ♣我们知道,当我们把一个运行中的容器关闭后,容器里的数据就没有了(如果你做了docker commit操作,数据会保留到新的镜像里面).所以我们就需要用容器数据卷把容器数据进行持久化储存. ...

  7. 使用docker redis-cluster集群搭建

    参考https://www.cnblogs.com/cxbhakim/p/9151720.html此文 主要搭建过程参考上文,此处讲下主要过程和遇到的坑 首先是镜像的基础搭建,我不知道是否是作者编写时 ...

  8. docker 创建jdk镜像

    基于上一个创建的基础镜像, wenbronk/centos Dockerfile ############################################ # version : we ...

  9. Docker扩展.md

    逻辑卷 Volume 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性: 数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效 对数据卷的更新,不会影响镜像 数 ...

随机推荐

  1. SpringBoot自定义servlet、注册自定义的servlet、过滤器、监听器、拦截器、切面、webmvcconfigureradapter过时问题

    [转]https://www.cnblogs.com/NeverCtrl-C/p/8191920.html 1 servlet简介 servlet是一种用于开发动态web资源的技术 参考博客:serv ...

  2. 301、404、200、304等HTTP状态

    在网站建设的实际应用中,容易出现很多小小的失误,就像mysql当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规http状态码的表现也是一样,Google无法验证网站几种解决办法,提及到由于 ...

  3. unittest----assert断言的使用

    unittest的官发文档链接:https://docs.python.org/2.7/library/unittest.html#unittest.TestCase 先介绍下unittest的基本使 ...

  4. NAT和PAT

    地址转换技术 优点: 内网能够主动访问外网 外网不能主动访问内网 内网安全 节省公网ip地址 缺点:慢   PAT 端口地址转换 节省公网IP 替换源端口和源地址 NAT 不节省公网IP 一个公网地址 ...

  5. x006-函数和模块的使用

    来源:百度SEO公司 函数和模块的使用 在Python中可以使用def关键字来定义函数,和变量一样每个函数也有一个响亮的名字,而且命名规则跟变量的命名规则是一致的.在函数名后面的圆括号中可以放置传递给 ...

  6. Java8实战,

    Supplier 1, @FunctionalInterfacepublic interface Supplier<T> { 2,    T get(); 3, Supplier<A ...

  7. 通过n+1个控制点求出n段分段函数的解析式

    最近刚好学了解析几何,在学完二元一次方程组与一次函数的关系后,我突然有了一个大胆的想法! 可不可以用程序自动求出一次函数的解析式呢? 这个想法源自于最近一段时间数学练习册上百考不厌的同类型题:给定在一 ...

  8. 拷贝和遍历DOM树

    一.浅拷贝: 拷贝就是复制,就相当于把一个对象中的所有内容,复制一份给另一个对象,直接复制, 或者说,就是把一个对象的地址给了另外一个对象,他们的指向相同,两个对象之间有相同的属性或者方法,都可以使用 ...

  9. 51nod 1434

    首先可以得出一个性质:LCM(1,2,3,4,...,N-1,N) 中质因子k的出现的次数为t,则有k^t<=n 根据这个性质我们先筛出素数,然后枚举每个质数,求出对应的k和t,然后找出倍数j( ...

  10. tarjan模板完整版

    https://www.luogu.org/problem/P2863 #include<cstdio> #include<vector> using namespace st ...