在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







在win10下使用docker快速搭建ruby开发环境的更多相关文章
- 使用Docker快速搭建PHP开发环境
最近有个同事找过来,希望我对在很早之前写的一个PHP网站上增加一些功能,当时开发使用xampp构建的本地开发环境,但是现在我的笔记本电脑已经更新,没有当时的开发环境.本着尽量不往电脑上装无用软件的原则 ...
- 五分钟用Docker快速搭建Go开发环境
挺早以前在我写过一篇用 `Docker`搭建LNMP开发环境的文章:[用Docker搭建Laravel开发环境](http://mp.weixin.qq.com/s?__biz=MzUzNTY5MzU ...
- Docker 快速搭建 MySQL8 开发环境
使用 Docker 快速搭建一个 MySQL8 开发环境 步骤 获取镜像 docker pull mysql:8 启动容器,密码 123456,映射 3306 端口 docker run --name ...
- 使用Docker快速搭建Tensorflow开发环境
当我刚开始学习使用scikit-learn时,总是会出现各种各样的包依赖问题,兜兜转转了一遍才全部安装好,现在的机器学习算法开发者大都使用tensorflow.pytorch来实现自己的想法,但依然会 ...
- win10下通过npm成功搭建react开发环境
1.安装node-v12.13.1-x64(LTS) 2.安装creatre-react-app: npm install -g create-react-app 3.通过create-react-a ...
- 一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- Docker-教你如何通过 Docker 快速搭建各种测试环境
今天给大家分享的主题是,如何通过 Docker 快速搭建各种测试环境,本文列举的,也是作者在工作中经常用到的,其中包括 MySQL.Redis.Elasticsearch.MongoDB 安装步骤,通 ...
- Linux下快速搭建php开发环境
php开发环境快速搭建 一.Linux下快速搭建php开发环境 1.安装XAMPP for Linux XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包,使用XA ...
- Windows下快速搭建安卓开发环境android-studio
Windows下快速搭建安卓开发环境android-studio 发布时间:2018-01-18 来源:网络 上传者:用户 关键字: 安卓 搭建 Android Windows 快速 环境 Studi ...
随机推荐
- CentOS6.5搭建ldap及pdc的过程
linux centos6.5,,配置的是本地yum,采用光盘自带的rpm包进行安装 安装openldap server 以及client yum install openldap-server ...
- SuperSlide轮播插件滚动高度或宽度不对的问题解决
声明:本文由w3h5原创,转载请注明出处:<SuperSlide轮播插件滚动高度或宽度不对的问题解决> SuperSlide 是一款比较实用的轮播插件,网站上常用的“焦点图/幻灯片”“Ta ...
- memset初始化数组的问题
今天才搞清楚,memset用于初始化数组,仅能初始化为0值,而不能初始化一个特定的值,这怎么能模糊了呢??? 因此,如果对申请的一段存放数组的内存进行初始化,每个数组元素均初始化为特定的值,必须使用循 ...
- OpenCV 线条及形状
1.线条 # dst 相当于画板 dst=np.zeros((300,300,3),np.uint8) # #参1 图像 参2 起始点 参3 结束点 参4 颜色 line=cv2.line(dst,( ...
- Vue入门(二)之数据绑定
Vue官网: https://cn.vuejs.org/v2/guide/forms.html#基础用法 [入门系列] (一) http://www.cnblogs.com/gdsblog/p/78 ...
- MySQL——优化ORDER BY语句
本篇文章我们将了解ORDER BY语句的优化,在此之前,你需要对索引有基本的了解,不了解的朋友们可以先看一下我之前写过的索引相关文章.现在让我们开始吧. MySQL中的两种排序方式 1.通过有序索引顺 ...
- Git创建本地仓库并推送至远程仓库
作为一名测试同学,日常工作经常需要checkout研发代码进行code review.自己极少有机会创建仓库,一度以为这是一个非常复杂过程.操作一遍后,发现也不过六个步骤,so,让我们一起揭开这神秘面 ...
- Qt简介 及与MFC、GDK+的比较
Qt C++图形用户界面应用程序开发框架. Qt的由来和发展 1.QT由来 Haavard Nord 和Eirik Chambe-Eng于1991年开始开发"Qt",1994年3月 ...
- 解决VS调试Web应用无问题而部署在IIS上报500和403的问题
[问题:报500]不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的(overrideModeDefault="Deny" [解决方案] 运行 ...
- C#读取AD域用户信息
private const string domainName = "本机IP地址或域名"; private const string adAdmin = "管理员帐号& ...