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. 【公有云】在阿里云中申请免费ssl证书

    准备 拥有阿里云账号 拥有域名,最好是在同个账号下,方便操作. 申请证书 第一步:进入申请 第二步:选择证书类型 第三步:支付,就是走个流程,不用给钱 第四步:填写证书信息 第五步:验证域名 第六步: ...

  2. 论文阅读:Deformable ConvNets v2

    论文地址:http://arxiv.org/abs/1811.11168 作者:pprp 时间:2019年5月11日 0. 摘要 DCNv1引入了可变形卷积,能更好的适应目标的几何变换.但是v1可视化 ...

  3. Linux网络编程综合运用之MiniFtp实现(五)

    转眼兴奋的五一小长假就要到来了,在放假前夕还是需要保持一颗淡定的心,上次中已经对miniFTP有基础框架进行了搭建,这次继续进行往上加代码,这次主要还是将经历投射到handle_child()服务进程 ...

  4. 双端循环列表实现栈(python)

    # -*- coding: utf-8 -*- from collections import deque class Node(object): def __init__(self, value=N ...

  5. c语言二级指针的使用,malloc内存申请

    #include<stdio.h> #include<stdlib.h> void AllocateMemory(int **pGetMemory, int n) { int ...

  6. python - scrapy 爬虫框架 ( redis去重 )

    1.  使用内置,并加以修改 ( 自定义 redis 存储的 keys ) settings 配置 # ############### scrapy redis连接 ################# ...

  7. [ARIA] Accessible animations with reduced motion

    Animations can make people sick, or worse! By adding animation toggles and listening in to the user' ...

  8. centos svn的安装和配置

    1.安装svn yum -y install subversion 2.配置 mkdir /home/svn/admin/test mkdir /home/svn/svnrepos svnadmin ...

  9. sql server if exists和 if not exists 的关键字用法

    if exists和if not exists关键字用法   1.介绍  if not exists 即如果不存在,if exists 即如果存在 2.使用  a.判断数据库不存在时  if not ...

  10. learning scala sealed class

    package com.aura.scala.day01 object sealedClassed { def findPlaceToSit(piece: Furniture) = piece mat ...