基于docker-compose搭建Discuz论坛

1.安装docker-ce

准备源

rm -fr /etc/yum.repos.d/*
curl -L https://mirrors.aliyun.com/repo/Centos-7.repo -o /etc/yum.repos.d/CentOS-Base.repo
# docker源
curl -L https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
# 更新缓存源
yum clean all && yum repolist

安装docker-ce

yum -y install docker-ce

修改默认镜像站

cat >> /etc/docker/daemon.json <<-EOF
{
  "registry-mirrors": ["https://o7h5zhl4.mirror.aliyuncs.com"]
}
EOF

启动docker

systemctl start docker

准备docker-compose

下载地址:https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64

mv docker-compose /usr/local/bin/
# 赋予可执行权限
chmod +x /usr/local/bin/docker-compose
# 查看版本,若查看到版本,则docker-compose可以使用
docker-compose --version

2.搭建Discuz

创建项目目录,并进入主目录

mkdir -p discuz/{web,db}
cd discuz/

编写网站Dockerfile

cat >> web/Dockerfile <<-EOF
FROM centos:7
RUN rm -fr /etc/yum.repos.d/*
RUN curl -L https://mirrors.aliyun.com/repo/Centos-7.repo -o /etc/yum.repos.d/CentOS-Base.repo
RUN rm -fr /var/cache/yum/*
RUN yum -y install httpd php php-mysql net-tools
EXPOSE 80
CMD ["/usr/sbin/httpd","-DFOREGROUND"]
EOF

编写数据库Dockerfile

cat >> db/Dockerfile <<-EOF
FROM centos:7
RUN rm -fr /etc/yum.repos.d/*
RUN curl -L https://mirrors.aliyun.com/repo/Centos-7.repo -o /etc/yum.repos.d/CentOS-Base.repo
RUN rm -fr /var/cache/yum/*
RUN yum -y install mariadb-server net-tools openssh-server
COPY db.sh /root/db.sh
RUN chmod 777 /root/db.sh
ENV MARIADB_USER root
ENV MARIADB_PASS 1234
RUN /root/db.sh
COPY run.sh /root/run.sh
RUN chmod 777 /root/run.sh
RUN sshd-keygen
RUN echo "1234" | passwd --stdin root
EXPOSE 22
CMD ["/root/run.sh"]
EOF

其他文件

vim db/db.sh
#!/bin/bash
mysql_install_db --user=mysql
sleep 3
mysqld_safe &
sleep 3
#mysqladmin -u "$MARIADB_USER" password "$MARIADB_PASS"
mysql -e "use mysql; grant all privileges on *.* to '$MARIADB_USER'@'%' identified by '$MARIADB_PASS' with grant option;"
h=$(hostname)
mysql -e "use mysql; update user set password=password('$MARIADB_PASS') where user='$MARIADB_USER' and host='$h';"
mysql -e "flush privileges;"

vim db/run.sh
#!/bin/bash
/usr/sbin/sshd
mysqld_safe

编写docker-compose.yml文件

vim docker-compose.yml
version: '2'
services:
  web:
    build: ./web
    image: "httpd:php5"
    restart: always
    container_name: web
    volumes:
      - "./upload:/var/www/html"
    networks:
      docker-1:
        ipv4_address: 10.5.20.36
    depends_on:
      - db
  db:
    build: ./db
    image: "db:mariadb5"
    restart: always
    container_name: db
    networks:
      docker-1:
        ipv4_address: 10.5.20.37
networks:
  docker-1:
    driver: macvlan
    driver_opts:
      parent: eth0
    ipam:
      config:
        - subnet: 10.5.20.0/24
          gateway: 10.5.20.1

上传Discuz压缩包并解压至项目主目录

unzip /root/Discuz_X3.2_SC_UTF8.zip -d ./
chmod -R 777 upload/

运行容器

docker-compose up -d --build

访问:http://10.5.20.36

删除容器

docker-compose down
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值