docker随笔:禅道 docker镜像的制作
Posted Stoneshen1211
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker随笔:禅道 docker镜像的制作相关的知识,希望对你有一定的参考价值。
文章目录
1 说明
1.1 禅道官方有docker制作镜像说明
1.2 禅道官方有docker运行禅道镜像说明
1.3 docker安装源码下载
1.4 参考文章
下面的DOcerfile、docker-entrypoint.sh、docker-compose等文件来自LateLee大神的相关资源
https://hub.docker.com/r/latelee/zentao/
https://github.com/latelee/docker-compose/tree/master/zentao
2 制作
2.1 基础镜像确定
在创建禅道镜像时候,需要确定基础镜像,一般都是指定DockerHub上的ubuntu:16.04来作为基础镜像,但是也可以根据自己的需求进行选择。
2.2 Dockerfile 制定
文件内容如下:
FROM ubuntu:16.04
MAINTAINER Stoneshen
ARG ZENTAO_URL=https://dl.cnezsoft.com/zentao/12.4.4/ZenTaoPMS.12.4.4.zbox_old.64.tar.gz
RUN apt-get update && apt-get install -y wget php-ldap \\
--no-install-recommends && rm -r /var/lib/apt/lists/*
RUN wget ${ZENTAO_URL} -O zbox.tar.gz && mv zbox.tar.gz /tmp
RUN apt-get remove -y wget && rm -rf /var/lib/apt/lists/*
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
EXPOSE 80 3306
ENTRYPOINT ["docker-entrypoint.sh"]
说明:
FROM :基础镜像
MAINTAINER:维护者信息
ENTRYPOINT:镜像的默认入口
2.3 docker-entrypoint.sh 制定
在上面的Dockerfile中有指定镜像的默认入口是docker-entrypoint.sh这个脚本,因此需要编写脚本信息,脚本信息如下:
#!/bin/bash
set -e
mysql_CONFIG="/opt/zbox/etc/mysql/my.cnf"
APACHE_CONFIG="/opt/zbox/etc/apache/httpd.conf"
if [ "${1:0:1}" == "-" ]; then
zbox --help
elif [ "$#" == "0" ]; then
if [ ! -d "/opt/zbox" ]; then
tar -zxf /tmp/zbox.tar.gz -C /opt/
if [[ "${BIND_ADDRESS}" == [fF][aA][lL][sS][eE] ]] && [ -f "${MYSQL_CONFIG}" ]; then
sed -Ei 's/^bind-address/#&/' ${MYSQL_CONFIG}
fi
fi
export PATH=/opt/zbox/:$PATH
export PATH=/opt/zbox/bin:$PATH
cat /opt/zbox/README && zbox start
if [ -n "${USER}" -a -n "${PASSWD}" ]; then
/opt/zbox/bin/htpasswd -b /opt/zbox/auth/users ${USER} ${PASSWD}
fi
if [ -n "${SMTP_HOST}" ];then
echo "${SMTP_HOST}" >> /etc/hosts
fi
tail -f /dev/null
else
exec "$@"
fi
2.4 制作
将上面两个文件放到同一个目录中,并在这个目录下,运行命令:
docker build –t zentao_v2 .
制作完成之后,使用命令docker images会看到我们制作成功的docker镜像:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zentao_v2 latest 0f03c44eba57 37 seconds ago 224MB
注意:此镜像只是为了熟手docker镜像的制作,可能一些参数之类的没有设置进去,所以,推荐使用禅道官方的docker hub镜像。
3 运行
3.1 直接使用docker run
直接使用如下命令:
docker run --name zentao_stone -v /home/data:/opt -p 8080:80 -itd zentao_v2
/home/data 是主机的目录,用于映射容器的/opt目录,也可以不映射
默认的用户名和密码是 admin 123456
也可以使用下面的指令指定用户名和密码:
docker run --name zentao_stone1 -e USER="admin" -e PASSWD="987654321" -v /home/data:/opt -p 8080:80 -itd zentao_v2
随后在浏览器中输入IP:8080即可进入禅道界面。
注意:上面命令只是简单命令,用于测试,详细指令可以参考上面1.2中禅道官方的指令说明。
注意:如果docker运行在linux环境下,直接使用linux的ip即可;如果docker运行在win环境下,则需要获取容器的真正的IP,在容器中使用命令docker-machine ip default即可获取,或者在上面的运行命令中指定IP映射
3.2 使用docker-compose
使用docker-compose需要制作docker-compose.yml文件,文件内容如下:
version: "2"
services:
zentao:
image: zentao_v2
container_name: zentao_stone
ports:
- "8080:80"
#- "3307:3306"
environment:
# specifies you own account and password.
USER: "admin"
PASSWD: "12345678"
BIND_ADDRESS: "false"
SMTP_HOST: "163.177.90.125 smtp.exmail.qq.com"
volumes:
# specifies the path replace "./data".
- /home/work/docker/zentao_make/data:/opt
restart: always
随后使用命令docker-compose up -d运行即可。
登录界面如下:
4 上传docker hub
上传镜像需要先对镜像打标签,然后在上传到docker hub。
4.1 镜像命名
格式如下:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
使用命令如下:
docker tag zentao_v2 stoneshen/zentao:v12.4.4
4.2 推送到docker hub
docker push stoneshen/zentao:v12.4.4
4.3 查看
以上是关于docker随笔:禅道 docker镜像的制作的主要内容,如果未能解决你的问题,请参考以下文章