wordpress搭建(Dockerfile构建lap和mariadb镜像)
1,mariadb镜像
# 基础镜像
FROM mariadb:latest
# 传参
ENV MYSQL_ROOT_PASSWORD=root
# 创建数据库wordpress
RUN echo "CREATE DATABASE wordpress;" >> /docker-entrypoint-initdb.d/init.sql
2,启动mariadb容器
# 这项目可映射可不映射端口
docker run -d -p 3306:3306 --name mariadb mariadb_wordpress
3,lap镜像(centos+appche+php基础环境)
# 基础镜像
FROM centos:centos7
# 作者Denlin
MAINTAINER author<Denlin>
# 基础环境
RUN yum update -y &&\
yum clean all &&\
yum install httpd php php-mysql php-gd openssl psmisc tar -y &&\
yum clean all
ADD scripts /scripts
# 这里注释掉赋权,在宿主机映射的源文件去做赋权操作
#RUN chmod 777 /scripts/
#RUN chown -R apache.apache /scripts/
# 端口暴露
EXPOSE 80
CMD ["/bin/bash","/scripts/start.sh"]
4,脚本赋权,脚本转码
# 脚本赋权
useradd -u 48 apache
chmod 777 ./*
chown -R apache.apache ./*
# 小坑!!!脚本转码,脚本编码的问题
# 原因:Windows和Linux的.sh脚本文件格式不同,如果在脚本中有空行,脚本是在Windows下进行编辑之后上传到linux上去执行的话,就会出现问题。windows 下的换行符是\r\n,而 linux 下的换行符是\n,没有识别/r,所以会导致上述的报错,这个属于脚本编码的问题。
# 方法1
vim 脚本.sh
:set ff=unix
:wq
# 方法2
yum install -y dos2unix
dos2unix 脚本.sh
5,启动lap容器
# 传入启动脚本需要参数
docker run -d --link mariadb \
-e DB_ENV_MYSQL_USER='root' \
-e DB_ENV_MYSQL_PASSWORD='root' \
-e DB_ENV_MYSQL_DATABASE='wordpress' \
-e DB_HOST='mariadb' \
-p 80:80 -v /opt/docker/wordpress:/var/www/html lap
6,项目gitee链接
https://gitee.com/cty2001/public.git