阶段的总结总是能让你踏上新的台阶
由于经常部署各种服务,每次到了新的环境中,就需要重新安装Java
、Mysql
、Nginx
、Redis
、Mongo
、Tomcat
等等各种运行环境和数据库,不仅效率低下,反复做这些更是让人头痛,所以,编写了简单的脚本,用来完成这些环境的搭建.
首先我们来做一些准备工作,拷贝下面的内容到文本编辑器内,另存为nginx.conf
注意后缀为conf,不要使用 txt 等
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}
接下来拷贝下面的内容,另存为docker-compose.yml
,如果你想修改数据库的密码,那么替换下面的123456
为你自己的密码即可
version: '3'
services:
mysql:
image: mysql:5.7
container_name: mysql
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456 #设置root帐号密码
ports:
- 3306:3306
volumes:
- /mydata/mysql/data/db:/var/lib/mysql #数据文件挂载
- /mydata/mysql/data/conf:/etc/mysql/conf.d #配置文件挂载
- /mydata/mysql/log:/var/log/mysql #日志文件挂载
redis:
image: redis:3.2
container_name: redis
command: redis-server --requirepass 123456 --appendonly yes
volumes:
- /mydata/redis/data:/data #数据文件挂载
ports:
- 6379:6379
nginx:
image: nginx:1.10
container_name: nginx
volumes:
- /mydata/nginx/nginx.conf:/etc/nginx/nginx.conf #配置文件挂载
- /mydata/nginx/html:/usr/share/nginx/html #静态资源根目录挂载
- /mydata/nginx/log:/var/log/nginx #日志文件挂载
ports:
- 80:80
mongo:
image: mongo:3.2
container_name: mongo
volumes:
- /mydata/mongo/db:/data/db #数据文件挂载
ports:
- 27017:27017
environment:
- AUTH=yes
- ADMIN_USER=root
- ADMIN_PASS=123456
- APPLICATION_DATABASE=mall
- APPLICATION_USER=root
- APPLICATION_PASS=123456
最后拷贝接下来的内容,另存为autodeploy.sh
#!/bin/bash
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun #安装 docker
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose #赋予dockercopose 可执行权限
systemctl enable docker #允许自动启动
systemctl start docker #启动 docker
#配置镜像加速
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://o3pvjnzz.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
#====nginx setting======
mkdir -p /mydata/nginx/
cp nginx.conf /mydata/nginx/
#====nginx setting end======
#启动项目
docker-compose up -d
准备工作做好了,现在,我们把docker-compose.yml
、nginx.conf
、autodeploy
这三个文件放入同一个文件夹,比如Mac
上,我放在桌面上的deploy
文件夹中,打开终端工具,进入 deploy 目录
cd ~/Desktop/deploy
给脚本可执行的权限(这里的autodeploy是脚本的名称)
chmod +x autodeploy.sh
现在,执行下面的命令
./autodeploy.sh
接下来,就是是等待的时间了,脚本执行完毕之后,Mysql
、Nginx
、Redis
、Mongo
就已经安装并且运行起来了.
这个脚本已经写入了我自己的阿里云镜像加速地址,所以在国内的服务器中安装速度会很快
如果我们想要移除这些服务,输入如下命令即可
cd ~/Desktop/deploy
docker-compose down
或者如果你想重启某个服务,只需要输入下面对应的某个服务的重启命令即可
docker restart mysql
docker restart redis
docker restart mongo
docker restart nginx
以上内容转载请注明出处,同时也请大家不吝你的关注和下面的赞赏
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
网友评论