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