docker在windows下發力的時候必將取代各類虛擬機,並改變程序員的開發習慣,或許還會改變infra的工做。node
概要:
在Windows下搭建開發環境一直是infra(我)頭疼的事情。爲了解決這個問題,跟老闆,程序員商量得出的解決辦法有如下幾種:
1.Mac下開發。優勢是搭建環境方便,缺點是須要熟悉mac操做。
2.Linux下開發。優勢也是搭建環境方便,缺點是須要熟悉linux操做。並且UI比Mac難看。mysql
爲了方便平常交流,最後變成使用win系統,VNC到linux下開發。還有一種是開虛擬機,常常很卡大抵最後仍是以上兩種選擇。linux
本次使用windows下的docker,基本環境以下:
Win10 Pro LTSC 64bit
Docker for Windows
i5-4460,8G DDR3程序員
Docker for Windows啓動的必要條件:
64bit Win10 Pro
CPU虛擬化啓動
Hyper-V啓用web
必須的知識:
Docker基礎知識,參考docker官網sql
1.安裝Docker:
在下方link選擇Download from Docker Hub(需註冊)
https://docs.docker.com/docker-for-windows/install/docker
安裝好之後,在setting裏修改cpu爲2核,memory爲2G(根據我的配置本身調整)shell
2.安裝rubymine(略過)windows
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