之前豆子在公司配置了Snipe IT的容器。Docker的配置命令很简单

配置Mysql数据库

docker run \--name snipe-mysql \-d \-e MYSQL_ROOT_PASSWORD="Ylh16888test" \-e MYSQL_DATABASE=snipe \-e MYSQL_USER=snipe \-e MYSQL_PASSWORD="Ylh16888test" \-e TZ=America/Chicago \-p 127.0.0.1:3306:3306 \-v /media/snipe-mysql:/var/lib/mysql \mysql:5.6 --sql-mode=""

配置web 服务器

docker create \ --name=snipe-it \ --link snipe-mysql:db \ -e PUID=1000 \ -e PGID=1000 \ -e DB_CONNECTION=mysql \ -e DB_HOST=snipe-mysql \ -e DB_DATABASE=snipe \ -e DB_USERNAME=snipe \ -e DB_PASSWORD="Ylh16888test" \ -e APP_KEY=base64:5U/KPKw1GN/Rz0fWYO/4FsSOqjmjvDAQzMCqwcAqstc= \ -p 8082:80 \ -v /media/snipe-conf:/config \ --restart unless-stopped \  snipe/snipe-it

运行web 服务器

docker start snipe-it

我把他改成了对应的docker-compose 文件, 有几个小小的心得记录一下

https://github.com/beanxyz/dockercompose

首先,我把snipe/snipe-it 这个镜像文件重新用Dockerfile写了一遍,目的是加入docker-compose-wait的这个小插件,这样我可以指定等待Mysql数据库完全起来之后,再执行我的web服务器,否则会报错找不到数据库。

第二个小问题是这个最新的镜像有个小bug,需要刷新一下数据库的权限。因此刚开始配置完了以后没工作我还以为是我的问题,后来在github上找到了其他人的答复。https://github.com/snipe/snipe-it/issues/8541

第三点是注意使用volume而不是bind mount,因为如果是共享文件的话,其他人未必有bind mount指定的目录

第四点是我需要传入一个API key,但是为了安全起见,应该是放在 docker-compose的.env 文件里面,而且应该放在.gitignore里面,这样不会暴露在公共的repository里面。

 

©著作权归作者所有:来自51CTO博客作者beanxyz的原创作品,如需转载,请注明出处,否则将追究法律责任

好知识,才能预见未来

赞赏

0人进行了赞赏支持

更多相关文章

  1. NFS上的数据通过inotify或者sersync软件实时同步数据到rsync服务
  2. 【DB宝41】监控利器PMM的使用--监控MySQL、PG、MongoDB、ProxySQ
  3. MySql数据库列表数据分页查询、全文检索API零代码实现
  4. 云计算入门从零到一成为云计算/运维工程师——如何部署自己的论
  5. Linux网络管理基础——网络的配置和服务器初始化【CentOS】
  6. nginx配置文件
  7. 学Python需要学数据库吗?Python学习教程!
  8. 【DB宝46】NoSQL数据库之CouchBase简介、集群搭建、XDCR同步及备
  9. 阿里自研分布式强一致关系型数据库——X-DB

随机推荐

  1. mapView 和textView布局
  2. Android 中文 API (100) —— ScrollView
  3. android---------ndk中的各个版本的下载
  4. android原生音乐播放器界面字体显示不全
  5. android开发之Seekbar
  6. android intent的常用方法
  7. ionic build android 结果卡在下载gradle
  8. [Android]在Android google Map中標出自
  9. Android下各文件方法获取的路径
  10. Android 读写文件的N种写法