docker在windows下发力的时候必将取代各种虚拟机,并改变程序员的开发习惯,或许还会改变infra的工作。

概要:
在Windows下搭建开发环境一直是infra(我)头疼的事情。为了解决这个问题,跟老板,程序员商量得出的解决办法有以下几种:
1.Mac下开发。优点是搭建环境方便,缺点是需要熟悉mac操作。
2.Linux下开发。优点也是搭建环境方便,缺点是需要熟悉linux操作。而且UI比Mac难看。

为了方便日常交流,最后变成使用win系统,VNC到linux下开发。还有一种是开虚拟机,经常很卡大抵最后还是以上两种选择。

本次使用windows下的docker,基本环境如下:
Win10 Pro LTSC 64bit
Docker for Windows
i5-4460,8G DDR3

Docker for Windows启动的必要条件:
64bit Win10 Pro
CPU虚拟化启动
Hyper-V启用

必须的知识:
Docker基础知识,参考docker官网

1.安装Docker:
在下方link选择Download from Docker Hub(需注册)
https://docs.docker.com/docker-for-windows/install/

安装好以后,在setting里修改cpu为2核,memory为2G(根据个人配置自己调整)

2.安装rubymine(略过)

3.启动docker化的mysql
新建F:\docker\mysql
添加docker-compose.yml文件,代码如下:

version: '3'
services:
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
container_name: mysql
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: test
MYSQL_PASSWORD: test
MYSQL_DATABASE: test
volumes:
- ./db_data:/var/lib/mysql adminer:
image: adminer
restart: always
ports:
- 8080:8080

  

在powershell中启动db
cd F:\docker\mysql
docker-compose up

启动完毕后可通过浏览器打开localhost:8080查看db。可通过navicat/hedisql等工具访问db。

4.在需要调试的代码中加入Dockerfile跟docker-compose.yml。代码分别如下:

Dockerfile:
FROM ruby:2.2
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN mkdir /myapp
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install docker-compose.yml:
version: '3'
services:
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3000:3000"

  

添加完毕后在powershell中build镜像
cd F:\docker\xxxxx
docker-compose build

5.配置rubymine

最新文章

  1. Xshell5 里桌面显示数据调大!!!
  2. log4j配置
  3. UVA 247 电话圈 (floyd传递闭包 + dfs输出连通分量的点)
  4. 基于soapUI构建WebService测试框架
  5. To add private variable to this Javascript literal object
  6. 修改一个Label上字体的大小(富文本)
  7. Java 六种异常处理的陋习(转)
  8. FMDatabaseQueue 如何保证线程安全
  9. IT轮子系列(三)——如何显示方法名——Swagger的使用(三)
  10. Django-ORM增删改查
  11. IP通信基础学习第七周(上)
  12. RabbitMQ 1
  13. 生产环境elasticsearch5.0报错IllegalArgumentException: number of documents in the index cannot exceed 2147483519的处理
  14. js获取到的页面中的checkbox选中的项
  15. C#计算重重字符串,出现的次数
  16. 本体【Ontology】综述
  17. UI5-学习篇-9-本地Eclipse UI5应用发布到SAP前端服务器
  18. 室内设计类网站Web原型制作分享——Dinzd
  19. flutter 防止键盘弹出 导致超出屏幕
  20. 简简单单搞掂恼人的Laravel 5安装

热门文章

  1. Linux 中 awk命令应用
  2. 在JavaScript文件中用ajax方法实现省市区的三级联动
  3. 微信小程序开发--背景图显示
  4. 安卓测试【二】eclipse离线安装ADT
  5. 给Jqgrid添加横向滚动条,实现点击行数据,触发事件。
  6. sql Server 查询方法的优化
  7. 获取 MySQL 崩溃时的 core file
  8. 转:基于InstallShield2013LimitedEdition的安装包制作
  9. Python学习(七)面向对象 ——继承和多态
  10. libcurl.dll 7.60.0静态库包含openssl/zlib