因为应用容器化部署已经是标准化的流程,无需再详篇介绍具体的部署流程。所以本文只提供相关的配置文档。如果对部署过程不了解的同学,请先自学容器基础。
镜像已经创建好了,如下
docker.io/xhuaustc/confluence:6.7.1 docker.io/xhuaustc/atlassian-mysql:5.7
镜像构建配置
mysql镜像
# my.cnf [mysqld] # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links = 0 # http://www.percona.com/blog/2008/05/31/dns-achilles-heel-mysql-installation/ skip_name_resolve # http://www.chriscalender.com/ignoring-the-lostfound-directory-in-your-datadir/ ignore-db-dir=lost+found character_set_server=utf8 init_connect='SET NAMES utf8' collation_server=utf8_bin transaction_isolation='read-committed' !includedir /etc/my.cnf.d
# Dockerfile FROM centos/mysql-57-centos7 COPY my.cnf /etc/my.cnf
confluence镜像
git clone https://github.com/cptactionhank/docker-atlassian-confluence
在Dockerfile目录下添加server.xml, setenv.sh与atlassian-extras-decoder-v2-3.3.0.jar
# server.xml <?xml version="1.0"?> <Server port="8000" shutdown="SHUTDOWN"> <Service name="Tomcat-Standalone"> <Connector port="8090" connectionTimeout="300000" redirectPort="8443" maxThreads="400" minSpareThreads="10" enableLookups="false" acceptCount="100" URIEncoding="UTF-8" protocol="org.apache.coyote.http11.Http11NioProtocol"/> <Engine name="Standalone" defaultHost="localhost"> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false" startStopThreads="4"> <Context path="" docBase="../confluence" reloadable="false" useHttpOnly="true"> <!-- Logger is deprecated in Tomcat 5.5. Logging configuration for Confluence is specified in confluence/WEB-INF/classes/log4j.properties --> <Manager pathname=""/> <Valve className="org.apache.catalina.valves.StuckThreadDetectionValve" threshold="600"/> </Context> <Context path="${confluence.context.path}/synchrony-proxy" docBase="../synchrony-proxy" reloadable="false" useHttpOnly="true"> <Valve className="org.apache.catalina.valves.StuckThreadDetectionValve" threshold="600"/> </Context> </Host> </Engine> <!-- To run Confluence via HTTPS: * Uncomment the Connector below * Execute: %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows) $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (Unix) with a password value of "changeit" for both the certificate and the keystore itself. * Restart and visit https://localhost:8443/ For more info, see https://confluence.atlassian.com/display/DOC/Running+Confluence+Over+SSL+or+HTTPS --> <!-- <Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" protocol="org.apache.coyote.http11.Http11NioProtocol" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocols="TLSv1,TLSv1.1,TLSv1.2" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" SSLEnabled="true" URIEncoding="UTF-8" keystorePass="<MY_CERTIFICATE_PASSWORD>"/> --> </Service> </Server>
# setenv.sh # See the CATALINA_OPTS below for tuning the JVM arguments used to start Confluence. echo "If you encounter issues starting up Confluence, please see the Installation guide at http://confluence.atlassian.com/display/DOC/Confluence+Installation+Guide" # set the location of the pid file if [ -z "$CATALINA_PID" ] ; then if [ -n "$CATALINA_BASE" ] ; then CATALINA_PID="$CATALINA_BASE"/work/catalina.pid elif [ -n "$CATALINA_HOME" ] ; then CATALINA_PID="$CATALINA_HOME"/work/catalina.pid fi fi export CATALINA_PID PRGDIR=`dirname "$0"` if [ -z "$CATALINA_BASE" ]; then if [ -z "$CATALINA_HOME" ]; then LOGBASE=$PRGDIR LOGTAIL=.. else LOGBASE=$CATALINA_HOME LOGTAIL=. fi else LOGBASE=$CATALINA_BASE LOGTAIL=. fi PUSHED_DIR=`pwd` cd $LOGBASE cd $LOGTAIL LOGBASEABS=`pwd` cd $PUSHED_DIR echo "" echo "Server startup logs are located in $LOGBASEABS/logs/catalina.out" # IMPORTANT NOTE: Only set JAVA_HOME or JRE_HOME above this line # Get standard Java environment variables if $os400; then # -r will Only work on the os400 if the files are: # 1. owned by the user # 2. owned by the PRIMARY group of the user # this will not work if the user belongs in secondary groups . "$CATALINA_HOME"/bin/setjre.sh else if [ -r "$CATALINA_HOME"/bin/setjre.sh ]; then . "$CATALINA_HOME"/bin/setjre.sh else echo "Cannot find $CATALINA_HOME/bin/setjre.sh" echo "This file is needed to run this program" exit 1 fi fi echo "---------------------------------------------------------------------------" echo "Using Java: $JRE_HOME/bin/java" CONFLUENCE_CONTEXT_PATH=`$JRE_HOME/bin/java -jar $CATALINA_HOME/bin/confluence-context-path-extractor.jar $CATALINA_HOME` export CONFLUENCE_CONTEXT_PATH $JRE_HOME/bin/java -jar $CATALINA_HOME/bin/synchrony-proxy-watchdog.jar $CATALINA_HOME echo "---------------------------------------------------------------------------" JVM_MINIMUM_MEMORY=${JVM_XMS:-384m} JVM_MAXIMUM_MEMORY=${JVM_XMX:-768m} # Set the JVM arguments used to start Confluence. For a description of the options, see # http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html CATALINA_OPTS="-Xms${JVM_MINIMUM_MEMORY} -Xmx${JVM_MAXIMUM_MEMORY} -XX:-PrintGCDetails -XX:+PrintGCDateStamps -XX:-PrintTenuringDistribution ${CATALINA_OPTS}" CATALINA_OPTS="-Xloggc:$LOGBASEABS/logs/gc-`date +%F_%H-%M-%S`.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=2M ${CATALINA_OPTS}" CATALINA_OPTS="-XX:G1ReservePercent=20 ${CATALINA_OPTS}" CATALINA_OPTS="-Djava.awt.headless=true ${CATALINA_OPTS}" CATALINA_OPTS="-Datlassian.plugins.enable.wait=300 ${CATALINA_OPTS}" CATALINA_OPTS="-Dsynchrony.enable.xhr.fallback=true ${CATALINA_OPTS}" CATALINA_OPTS="-Dorg.apache.tomcat.websocket.DEFAULT_BUFFER_SIZE=32768 ${CATALINA_OPTS}" CATALINA_OPTS="${START_CONFLUENCE_JAVA_OPTS} ${CATALINA_OPTS}" CATALINA_OPTS="-Dconfluence.context.path=${CONFLUENCE_CONTEXT_PATH} ${CATALINA_OPTS}" export CATALINA_OPTS
修改Dockerfile
# Dockerfile FROM openjdk:8-alpine # Setup useful environment variables ENV CONF_HOME /var/atlassian/confluence ENV CONF_INSTALL /opt/atlassian/confluence ENV CONF_VERSION 6.7.1 ENV JAVA_CACERTS $JAVA_HOME/jre/lib/security/cacerts ENV CERTIFICATE $CONF_HOME/certificate # Install Atlassian Confluence and helper tools and setup initial home # directory structure. RUN set -x \ && apk --no-cache add curl xmlstarlet bash ttf-dejavu libc6-compat \ && mkdir -p "${CONF_HOME}" \ && chmod -R 777 "${CONF_HOME}" \ && mkdir -p "${CONF_INSTALL}/conf" \ && curl -Ls "https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONF_VERSION}.tar.gz" | tar -xz --directory "${CONF_INSTALL}" --strip-components=1 --no-same-owner \ && curl -Ls "https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.44.tar.gz" | tar -xz --directory "${CONF_INSTALL}/confluence/WEB-INF/lib" --strip-components=1 --no-same-owner "mysql-connector-java-5.1.44/mysql-connector-java-5.1.44-bin.jar" \ && chmod -R 777 "${CONF_INSTALL}/conf" \ && chmod -R 777 "${CONF_INSTALL}/temp" \ && chmod -R 777 "${CONF_INSTALL}/logs" \ && chmod -R 777 "${CONF_INSTALL}/work" \ && echo -e "\nconfluence.home=$CONF_HOME" >> "${CONF_INSTALL}/confluence/WEB-INF/classes/confluence-init.properties" \ && xmlstarlet ed --inplace \ --delete "Server/@debug" \ --delete "Server/Service/Connector/@debug" \ --delete "Server/Service/Connector/@useURIValidationHack" \ --delete "Server/Service/Connector/@minProcessors" \ --delete "Server/Service/Connector/@maxProcessors" \ --delete "Server/Service/Engine/@debug" \ --delete "Server/Service/Engine/Host/@debug" \ --delete "Server/Service/Engine/Host/Context/@debug" \ "${CONF_INSTALL}/conf/server.xml" \ && touch -d "@0" "${CONF_INSTALL}/conf/server.xml" # Use the default unprivileged account. This could be considered bad practice # on systems where multiple processes end up being executed by 'daemon' but # here we only ever run one process anyway. # Expose default HTTP connector port. EXPOSE 8090 8091 # Set volume mount points for installation and home directory. Changes to the # home directory needs to be persisted as well as parts of the installation # directory due to eg. logs. VOLUME ["/var/atlassian/confluence", "/opt/atlassian/confluence/logs"] # Set the default working directory as the Confluence home directory. WORKDIR /var/atlassian/confluence COPY docker-entrypoint.sh / COPY atlassian-extras-decoder-v2-3.3.0.jar /opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.3.0.jar COPY server.xml /opt/atlassian/confluence/conf/server.xml ENTRYPOINT ["/docker-entrypoint.sh"] # Run Atlassian Confluence as a foreground process by default. CMD ["/opt/atlassian/confluence/bin/start-confluence.sh", "-fg"]
docker-compose配置
因为mysql用mysql用户启动的,需要把data/mysql权限改为777chmod 777 data/mysql -R
wiki: image: xhuaustc/confluence:6.7.1 restart: always environment: - JVM_XMX=1024m - JVM_XMS=512m ports: - '10380:8090' links: - db volumes: - ./data/confluence:/var/atlassian/confluence - ./data/logs:/opt/atlassian/confluence/logs db: image: xhuaustc/atlassian-mysql:5.7 restart: always environment: - MYSQL_USER=confluence - MYSQL_PASSWORD=conflence - MYSQL_DATABASE=confluence - MYSQL_ROOT_PASSWORD=confluence volumes: - ./data/mysql:/var/lib/mysql
Openshfit confluence模板
apiVersion: v1 kind: Template metadata: creationTimestamp: null name: confluence objects: - apiVersion: v1 kind: DeploymentConfig metadata: labels: run: confluence name: confluence spec: replicas: 1 selector: run: confluence strategy: type: Recreate template: metadata: labels: run: confluence spec: containers: - env: - name: JVM_XMX value: '2048m' - name: JVM_XMS value: '1024m' image: docker.io/xhuaustc/confluence:6.7.1 imagePullPolicy: IfNotPresent name: confluence volumeMounts: - mountPath: /var/atlassian/confluence name: volume-7iy6x - mountPath: /opt/atlassian/confluence/logs name: volume-zsyly volumes: - name: volume-7iy6x persistentVolumeClaim: claimName: confluence - name: volume-zsyly persistentVolumeClaim: claimName: log triggers: - type: ConfigChange - apiVersion: v1 kind: DeploymentConfig metadata: labels: run: mysql name: mysql spec: replicas: 1 selector: run: mysql strategy: type: Recreate template: metadata: labels: run: mysql spec: containers: - env: - name: MYSQL_USER value: confluence - name: MYSQL_PASSWORD value: confluence - name: MYSQL_DATABASE value: confluence - name: MYSQL_ROOT_PASSWORD value: confluence image: docker.io/xhuaustc/atlassian-mysql:5.7 imagePullPolicy: IfNotPresent name: mysql volumeMounts: - mountPath: /var/lib/mysql name: volume-uiwfa volumes: - name: volume-uiwfa persistentVolumeClaim: claimName: mysql-data triggers: - type: ConfigChange - apiVersion: v1 kind: Service metadata: labels: run: confluence name: confluence spec: ports: - port: 8090 protocol: TCP targetPort: 8090 selector: run: confluence type: ClusterIP - apiVersion: v1 kind: Service metadata: labels: run: mysql name: mysql spec: ports: - port: 3306 protocol: TCP targetPort: 3306 selector: run: mysql type: ClusterIP - apiVersion: v1 kind: Route metadata: annotations: haproxy.router.openshift.io/timeout: 3000s labels: run: confluence name: confluence spec: port: targetPort: 8090 to: kind: Service name: confluence weight: 100 wildcardPolicy: None - apiVersion: v1 kind: PersistentVolumeClaim metadata: annotations: volume.beta.kubernetes.io/storage-class: ceph-rbd-sc volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/rbd name: confluence spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi - apiVersion: v1 kind: PersistentVolumeClaim metadata: annotations: volume.beta.kubernetes.io/storage-class: ceph-rbd-sc volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/rbd name: log spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi - apiVersion: v1 kind: PersistentVolumeClaim metadata: annotations: volume.beta.kubernetes.io/storage-class: ceph-rbd-sc volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/rbd name: mysql-data spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi
作者:潘晓华Michael
链接:https://www.jianshu.com/p/e1e8b29affc0
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
热门文章
- 2月8日19.3M/S|SSR/Clash/Shadowrocket/V2ray免费节点每天更新订阅链接,翻墙机场推荐分享
- 宠物猫三针疫苗多少钱(宠物猫三针疫苗多少钱啊)
- MySQL CONCAT_WS()函数的用途是什么?
- 1月15日19.5M/S|V2ray/SSR/Clash/Shadowrocket免费节点每天更新订阅链接,翻墙机场推荐分享
- 国内宠物品牌进口粮回收(国内宠物品牌进口粮回收)
- 领养狗狗协议怎么签订(领养犬协议)
- 动物园兽医师的职责是什么(动物园兽医岗位职责)
- 2月7日19.4M/S|Shadowrocket/V2ray/Clash/SSR免费节点每天更新订阅链接,翻墙机场推荐分享
- 1月18日18.1M/S|V2ray/Shadowrocket/Clash/SSR免费节点每天更新订阅链接,翻墙机场推荐分享
- 2月23日20.7M/S|Clash/Shadowrocket/SSR/V2ray免费节点每天更新订阅链接,翻墙机场推荐分享