1、Docker运行mysql容器:
docker run -d -p3306:3306 --name=mysql5 -e MYSQL_ROOT_PASSWORD=111111 mysql:5
2、进入到mysql中添加数据库:
- [root@vm1 ~]# docker exec -it mysql5 /bin/bash
- root@98d13d56f234:/# mysql -uroot -p
- Enter password:
- Welcome to the MySQL monitor. Commands end with ; or \g.
- Your MySQL connection id is 2
- Server version: 5.7.36 MySQL Community Server (GPL)
-
- Copyright (c) 2000, 2021, Oracle and/or its affiliates.
-
- Oracle is a registered trademark of Oracle Corporation and/or its
- affiliates. Other names may be trademarks of their respective
- owners.
-
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
-
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | mysql |
- | performance_schema |
- | sys |
- +--------------------+
- 4 rows in set (0.00 sec)
-
- mysql> create database ferry;
- Query OK, 1 row affected (0.00 sec)
-
- mysql>
- mysql>
- mysql> exit
- Bye
- root@98d13d56f234:/# exit
- exit
-
使用create database ferry;命令创建数据库之后。exit命令退出数据库,然后再exit退出mysql5容器。
docker run --name=redis6.0 -d -p 6379:6379 redis:6.0
4、检查两个容器是否运行正常:
docker ps -a
5、安装git:
yum install -y git
6、拉取ferry代码:
- [root@vm1 ~]# git clone https://github.com/lanyulei/ferry.git
- Cloning into 'ferry'...
- remote: Enumerating objects: 2729, done.
- remote: Counting objects: 100% (674/674), done.
- remote: Compressing objects: 100% (271/271), done.
- remote: Total 2729 (delta 424), reused 453 (delta 401), pack-reused 2055
- Receiving objects: 100% (2729/2729), 8.53 MiB | 4.06 MiB/s, done.
- Resolving deltas: 100% (1523/1523), done.
7、进入到ferry目录:
- [root@vm1 ~]# cd ferry
- [root@vm1 ferry]# ll
- total 124
- drwxr-xr-x 9 root root 103 Nov 12 07:49 apis
- -rwxr-xr-x 1 root root 8171 Nov 12 07:49 build.sh
- drwxr-xr-x 4 root root 48 Nov 12 07:49 cmd
- drwxr-xr-x 2 root root 104 Nov 12 07:49 config
- drwxr-xr-x 2 root root 81 Nov 12 07:49 database
- drwxr-xr-x 2 root root 27 Nov 12 07:49 docker
- -rw-r--r-- 1 root root 1050 Nov 12 07:49 docker-compose.yml
- -rw-r--r-- 1 root root 1888 Nov 12 07:49 Dockerfile
- drwxr-xr-x 2 root root 96 Nov 12 07:49 docs
- drwxr-xr-x 3 root root 17 Nov 12 07:49 global
- -rw-r--r-- 1 root root 5742 Nov 12 07:49 go.mod
- -rw-r--r-- 1 root root 80643 Nov 12 07:49 go.sum
- drwxr-xr-x 3 root root 87 Nov 12 07:49 handler
- -rw-r--r-- 1 root root 1065 Nov 12 07:49 LICENSE
- -rw-r--r-- 1 root root 70 Nov 12 07:49 main.go
- -rw-r--r-- 1 root root 296 Nov 12 07:49 Makefile
- drwxr-xr-x 2 root root 133 Nov 12 07:49 middleware
- drwxr-xr-x 6 root root 59 Nov 12 07:49 models
- drwxr-xr-x 14 root root 180 Nov 12 07:49 pkg
- -rw-r--r-- 1 root root 6878 Nov 12 07:49 README.md
- drwxr-xr-x 5 root root 91 Nov 12 07:49 router
- drwxr-xr-x 5 root root 48 Nov 12 07:49 static
- drwxr-xr-x 3 root root 136 Nov 12 07:49 template
- drwxr-xr-x 2 root root 54 Nov 12 07:49 test
- drwxr-xr-x 5 root root 183 Nov 12 07:49 tools
8、修改settings.yml文件:
- [root@vm1 ferry]# cat config/settings.yml
- script:
- path: ./static/scripts
- settings:
- application:
- domain: localhost:8002
- host: 0.0.0.0
- ishttps: false
- mode: dev
- name: ferry
- port: "8002"
- readtimeout: 1
- writertimeout: 2
- database:
- dbtype: mysql
- host: 192.168.17.150
- name: ferry
- password: 111111
- port: 3306
- username: root
- domain:
- gethost: 1
- url: localhost:9527
- email:
- alias: ferry
- host: smtp.163.com
- pass: your password
- port: 465
- user: fdevops@163.com
- gorm:
- logmode: 0
- maxidleconn: 0
- maxopenconn: 20000
- jwt:
- secret: ferry
- timeout: 86400
- ldap:
- anonymousquery: 0
- basedn: dc=fdevops,dc=com
- bindpwd: 123456
- binduserdn: cn=admin,dc=fdevops,dc=com
- host: localhost
- port: 389
- tls: 0
- userfield: uid
- log:
- compress: 1
- consolestdout: 1
- filestdout: 0
- level: debug
- localtime: 1
- maxage: 30
- maxbackups: 300
- maxsize: 10240
- path: ./logs/ferry.log
- public:
- islocation: 0
- redis:
- url: redis://192.168.17.150:6379
- ssl:
- key: keystring
- pem: temp/pem.pem
-
-
- 做如下修改:
- mysql 配置(更改host 和密码为你自己的):
- host: ferry_mysql -> host: 192.168.17.150
- password: 123456 -> password: 111111
-
- 找到如下配置:
- redis:
- url: redis://ferry_redis:6379
- 做如下修改:
- redis 配置(更改host为你自己的):
- url: redis://ferry_redis:6379 -> url: redis://192.168.17.150:6379
说明:database和redis两个地方的配置,因为我这边数据库和redis都是部署在同一台机器上,所以就没写IP地址,而是使用的localhost,然后运行ferry失败。后来我改成机器的IP地址,发现就正常了。
9、创建needinit文件:
touch config/needinit
在lanyulei官网上说:
若是你没有同步过 ferry 相关的数据,则只需要在配置文件的路径下创建一个名为 needinit 的文件即可。
若是已经同步过,则必须确认在配置文件的路径下,一定要没有这个文件needinit。避免造成数据的重复同步。
配置文件的路径可根据下一步的描述得知。
10、创建Ferry容器并启动:
docker run -itd --name ferry -v /root/ferry/config:/opt/workflow/ferry/config -p 8002:8002 lanyulei/ferry:1.0.1
注意:-v 前面是Docker主机的路径,后面是容器中的路径。/root/ferry/config是目前我机器上的路径,里面的配置文件是要挂载到容器里相应路径的。这不能搞错。
11、检查Ferry容器的运行状态:
- [root@vm1 ferry]# docker ps -a
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 67426aef7694 lanyulei/ferry:1.0.1 "/opt/workflow/ferry…" 2 minutes ago Up 7 seconds 0.0.0.0:8002->8002/tcp, :::8002->8002/tcp ferry
- b606975167ba redis:6.0 "docker-entrypoint.s…" 34 minutes ago Up 34 minutes 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis6.0
- 90c283d2ea0e mysql:5 "docker-entrypoint.s…" 40 minutes ago Up 40 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql5
如果容器运行有问题,可以使用docker logs ferry命令检查容器运行的输出信息。
12、浏览器访问http://ip地址:8002,即可访问到ferry系统:

用户名:admin
密码:123456
13、说明:
目前的部署我们直接使用的是mysql的root账户,密码也比较简单。建议在数据库中创建ferry用户,并使用比较复杂的密码,并进行grant授权。