基础设施如何搭建(五) —— Crowd(Docker版本)

date
Mar 16, 2020
slug
tools-crowd
status
Published
tags
工具
summary
type
Post

集中式身份管理

Crowd从字面意思看就知道啥意思了,可以管理多种用户目录,如Active Directory、LDAP、OpenLDAP、Microsoft Azure AD等,单点登录 (SSO),无缝集成 Jira、Confluence、Jenkins等等常用DevOps工具系统。

工具包准备

  • 版本: 3.2.1

Docker安装启动方式

需要准备
  • Docker
由于官方已经有镜像,我们在官方镜像上面加入自定义的内容即可,
,我们需要的是红框的2个文件,如下(Repo托管是bitbucket):
notion image
我在本地Mac上面建立了一个Docker Build目录,包含下面几个文件
  • Dockerfile(上面的官方repo下载)
  • atlassian-crowd-3.2.1.tar.gz(官方二进制包,主要是Dockerfile里面的Curl自动下载的速度实在是慢的可以,我在提前下载好,COPY进去,这块不是非必须用这个包,可以依赖Dockerfile的Curl到官方下载安装包)
  • mysql-connector-java-5.1.45.jar(Mysql官网下载一个)
FROM openjdk:8-jdk-alpine
MAINTAINER Dave Chevell

ENV RUN_USER            daemon
ENV RUN_GROUP           daemon

# <https://confluence.atlassian.com/crowd/important-directories-and-files-78676537.html>
ENV CROWD_HOME          /var/atlassian/application-data/crowd
ENV CROWD_INSTALL_DIR   /opt/atlassian/crowd

VOLUME ["${CROWD_HOME}"]

# Expose HTTP port
EXPOSE 8095

WORKDIR $CROWD_HOME

CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/sbin/tini", "--"]

RUN apk add --no-cache wget curl openssh bash procps openssl perl ttf-dejavu tini

COPY entrypoint.sh              /entrypoint.sh

ARG CROWD_VERSION=3.2.1

COPY atlassian-crowd-${CROWD_VERSION}.tar.gz /tmp/atlassian-crowd-${CROWD_VERSION}.tar.gz
COPY mysql-connector-java-5.1.45.jar /tmp/mysql-connector-java-5.1.45.jar

RUN mkdir -p                             ${CROWD_INSTALL_DIR} \\
    && tar -xzvf /tmp/atlassian-crowd-${CROWD_VERSION}.tar.gz -C ${CROWD_INSTALL_DIR} --strip-components=1 --no-same-owner \\
    && mv /tmp/mysql-connector-java-5.1.45.jar ${CROWD_INSTALL_DIR}/crowd-webapp/WEB-INF/lib \\
    && rm -rf /tmp/atlassian-crowd-${CROWD_VERSION}.tar.gz \\
    && chown -R ${RUN_USER}:${RUN_GROUP} ${CROWD_INSTALL_DIR}/ \\
    && sed -i -e 's/-Xms\\([0-9]\\+[kmg]\\) -Xmx\\([0-9]\\+[kmg]\\)/-Xms\\${JVM_MINIMUM_MEMORY:=\\1} -Xmx\\${JVM_MAXIMUM_MEMORY:=\\2} \\${JVM_SUPPORT_RECOMMENDED_ARGS} -Dcrowd.home=\\${CROWD_HOME}/g' ${CROWD_INSTALL_DIR}/apache-tomcat/bin/setenv.sh \\
    && sed -i -e 's/port="8095"/port="8095" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CROWD_INSTALL_DIR}/apache-tomcat/conf/server.xml

执行build
cd /your-docker-build-path
docker build -t michael/atlassian-crowd:3.2.1 .
启动镜像(配套如果使用MYSQL,建议Docker Compose启动Jira + MYSQL)
docker run -d --rm --name="crowd" \\
-v /your-path/crowd:/var/atlassian/application-data/crowd  \\
-p 8095:8095 \\
-e "JVM_MINIMUM_MEMORY=384m"
-e "JVM_MAXIMUM_MEMORY=768m"
michael/atlassian-crowd:3.2.1

配置

  • 打开http://ip:8095,点击Set up Crowd
    • notion image
  • 用百度网盘的包,进行操作,进入下一步
  • 选择New installation
    • notion image
  • 配置数据库
    • notion image
  • 其他信息确认
    • notion image
  • 默认管理员信息
    • notion image

© 天行者YANG 2020 - 2022