GithubHelp home page GithubHelp logo

teracyhq / dev Goto Github PK

View Code? Open in Web Editor NEW
86.0 11.0 31.0 11.02 MB

The only truly universal productive development platform with Docker on macOS, Linux and Windows! http://blog.teracy.com/2016/12/20/teracy-dev-the-only-truly-universal-productive-development-platform-with-docker-on-macos-linux-and-windows/ http://slides.teracy.net/hoatle/productive-dev-workflow-with-teracy-dev/latest/

Home Page: http://dev.teracy.org/docs

License: BSD 3-Clause "New" or "Revised" License

Ruby 94.03% Shell 2.83% HTML 1.70% PowerShell 0.50% Batchfile 0.93%
development-environment development-workflow vagrant virtualbox docker development-platform windows mac linux development-worksation full-stack workstation server teracy-dev

dev's Introduction

teracy-dev

https://travis-ci.org/teracyhq/dev.svg?branch=develop

Issues board: https://waffle.io/teracyhq/all?source=teracyhq%2Fdev

The only truly universal productive software development platform for all!

teracy-dev is created to set up a universal development platform which has the same development workflow on Mac, Linux and Windows with good developer experience and productivity in mind.

We leverage Docker workflow for our software development and we use vagrant, virtualbox, and chef to install and configure any necessary packages.

By using this approach, we can work in a consistent development environment and workflow. We do not have to install tons of development stuff on the host machine manually to get started.

Note

We are using the https://github.com/acme101 project to show the best practices from teracy-dev applied for organizations.

Features

  • fully automated managed servers on your local machine (by leveraging vagrant + chef provisioner). This saves you a lot of time and money to work on many virtual private servers (VPS) on your local machine before deploying applications on the production servers.
  • the universally same workflow on Windows, Linux and Mac
  • higher performance and productivity gain than default vagrant settings
  • support different configuration management tools (provisioners)
  • default set up with easy personalized configuration settings without any limitation
  • seamless upgrading to the next updated versions of teracy-dev
  • best practices to develop and deploy applications
  • a full-stack developer workstation
  • many more features that you will discover yourselves when using this

Installation and Usage

Follow the guide at http://dev.teracy.org/docs/getting_started.html

License

BSD License

dev's People

Contributors

adamhjk avatar btm avatar cuzen1 avatar datphan avatar hoale avatar hoatle avatar hoavt avatar mattray avatar phuonglm avatar smxsm avatar tucq88 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dev's Issues

should support remote provision the teracy-dev VM to a remote machine as a remote development VM

This is useful when you want to develop on a remote internet accessible machine, the changes are reflected immediately for everyone to see the web demo, for example.

This is useful for remote development VM, not production.

I guess that we can even do rsync to the remote VM (the same with our local VM), so basically, we move the local VM to remote VM, everything else is the same.

add a docs guide how to upgrade from teracy-dev v0.4.2 to v0.5.0

create how_to_upgrade.rst file.

The first section: From teracy-dev v0.4.2 to v0.5.0

This doc file is used as a guide for upgrading from the previous version to the next version of teracy-dev.


hoavt [10:08 AM]  
ma teracy-dev installed ben mac rồi, thì test thế nào nữa

hoatle [10:09 AM]  
teracy-dev cũ à? cho tôi các thông số: `$ VBoxManage --version` và `$ vagrant --version`

hoavt [10:11 AM]  
```Hoas-MBP:teracy-dev hoavt$ vagrant ssh
Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 3.13.0-105-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

32 packages can be updated.
2 updates are security updates.

New release '14.04.2 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Your Hardware Enablement Stack (HWE) is supported until April 2017.

Last login: Wed Dec 21 03:04:33 2016 from 10.0.2.2
vagrant@vagrant:~$ cd workspace/
vagrant@vagrant:~/workspace$ ls
vagrant@vagrant:~/workspace$ $ VBoxManage --version
$: command not found
vagrant@vagrant:~/workspace$ 

[10:11]
no ko command not found

[10:11]
ma sao trong workspace ko thay cac folder con

hoatle [10:12 AM]
bỏ $ đằng trước đi, $là để biết nó là command line

[10:12]
VBoxManage --version chạy ở ngoài, ko phải trong VM

[10:13]
đây là teracy-dev cũ rồi, trước tiên bạn cho thông số đi

[10:13]
rồi tôi hướng dẫn upgrade

[10:13]
xong rồi nhớ để update docs nhé (how to upgrade from v0.4.2 to v0.5.0) (edited)

hoavt [10:14 AM]
5.1.4r110228

[10:14]
vagrant 1.5.8

jira BOT [10:14 AM]
Hoat Le created Task DEVOPS-266
Create a wiki page on how to use synergy
Assignee

PhuongLM

Priority

Major

hoatle [10:15 AM]
$ brew cask uninstall vagrant rồi install vagrant lại theo hướng dẫn ở docs nhé (vagrant v1.8.7)

hoavt [10:16 AM]
doc nao?

hoatle [10:16 AM]
http://dev.teracy.org/docs/develop/getting_started.html#manual-installation-on-macos

hoavt [10:17 AM]
your password cuar mays nhi

hoatle [10:17 AM]
máy của bạn có homebrew và homebrew cask rồi

[10:17]
chính là password bạn dùng để login đấy

hoavt [10:17 AM]
roi

hoatle [10:17 AM]
tôi có nhớ đâu

hoavt [10:17 AM]
gio vagrant lai

hoatle [10:17 AM]
từ từ

[10:17]
follow step by step của tôi

[10:17]
$ brew cask uninstall vagrant chưa?

hoavt [10:18 AM]
done

hoatle [10:18 AM]
cài vagrant v1.8.7 đi

hoavt [10:19 AM]
ok

hoavt [10:27 AM]
5.1.4r110228 thì cũng ko cần phải cài lại nhỉ?

hoatle [10:28 AM]
ừ, VirtualBox ko cần phải cài lại, yêu cầu >=5.1

hoavt [10:30 AM]
cai đặt vagrant rồi

[10:31]
giờ làm gì tiếp?

[10:31]
có phải clone teracy-dev lại ko?

hoatle [10:33 AM]
giờ $ cd ~/teracy-dev rồi $ vagrant destroy rồi $ cd ~ rồi $ mv teracy-dev teracy-dev-old rồi follow http://dev.teracy.org/docs/develop/getting_started.html#teracy-dev-git-clone-and-vagrant-up (edited)

[10:35]
$ vagrant destroy là để xoá VM cũ đi nếu có, rồi $ mv teracy-dev teracy-dev-old là để rename teracy-devthành teracy-dev-olddirectory. Tốt nhất là clone cái mới, nên mình rename lại cái cũ để đấy thôi

hoavt [10:36 AM]
git pull ko dc a?

hoatle [10:39 AM]
không, vì nó phức tạp không cần thiết, liên quan đến vagrant_config_override.json nữa

[10:40]
lần này upgrade lớn, ko tương thích với version cũ, tốt nhất là set up mới

hoavt [10:42 AM]

Cloning into 'teracy-dev'...
remote: Counting objects: 9559, done.
remote: Compressing objects: 100% (178/178), done.
remote: Total 9559 (delta 109), reused 0 (delta 0), pack-reused 9381
Receiving objects: 100% (9559/9559), 9.13 MiB | 1.75 MiB/s, done.
Resolving deltas: 100% (5338/5338), done.
Checking connectivity... done.
Hoas-MBP:~ hoavt$ cd teracy-dev
Hoas-MBP:teracy-dev hoavt$ git checkout develop 
Already on 'develop'
Your branch is up-to-date with 'origin/develop'.
Hoas-MBP:teracy-dev hoavt$ vagrant up
required: '$ vagrant plugin install vagrant-gatling-rsync'
Hoas-MBP:teracy-dev hoavt$ 

hoatle [10:43 AM]
cứ theo hướng dẫn thôi, bạn xem cả video nữa

[10:44]
ở phần docs nên mention thêm là nếu yêu cầu các plugin thì cần install plugin theo hướng dẫn

hoavt [10:46 AM]
ah, trong doc co cai do 😄

hoavt [10:58 AM]

==> default: which network to bridge to.
==> default: Available bridged network interfaces:
1) en1: Wi-Fi (AirPort)
2) en0: Ethernet
3) en2: Thunderbolt 1
4) p2p0
5) bridge0
==> default: When choosing an interface, it is usually the one that is
==> default: being used to connect to the internet.
    default: Which interface should the network bridge to? 
    default: Which interface should the network bridge to? ```

[10:59]  
tự chọn interface à?

hoatle [10:59 AM]  
bạn đang dùng mạng gì đó? Wi-Fi đúng không?

hoavt [10:59 AM]  
ừa

hoatle [11:00 AM]  
ừ, chọn Wi-Fi, tôi sẽ add thêm cái này vào default config đỡ phải chọn

hoavt [11:00 AM]  
ừa

[11:02]  
 ``` default: Which interface should the network bridge to? en1: Wi-Fi (Airport)
    default: Which interface should the network bridge to? en1: Wi-Fi (AirPort)
    default: Which interface should the network bridge to? "en1: Wi-Fi (AirPort)"
    default: Which interface should the network bridge to       
    default: Which interface should the network bridge to? en1
    default: Which interface should the network bridge to? ```

[11:02]  
sao chon ma ko dc

hoatle [11:04 AM]  
chọn như cái đầu là được mà nhỉ, để tôi check

[11:04]  
chọn 1 đi

hoavt [11:04 AM]  
dc

hoavt [12:03 PM]  
```==> default: Running provisioner: shell...
    default: Running: inline script
==> default: mesg: 
==> default: ttyname failed
==> default: : 
==> default: Inappropriate ioctl for device
==> default: ip address: 192.168.1.94
==> default: vagrant-gatling-rsync is starting the sync engine because you have at least one rsync folder. To disable this behavior, set `config.gatling.rsync_on_startup = false` in your Vagrantfile.
==> default: Doing an initial rsync...
==> default: Rsyncing folder: /Users/hoavt/teracy-dev/workspace/ => /home/vagrant/workspace
==> default:   - Exclude: [".vagrant/", ".git", ".idea/", "node_modules/", "bower_components/", ".npm/"]
==> default: Watching: /Users/hoavt/teracy-dev/workspace

[12:03]
cu thay watching mai the nhi

hoatle [12:04 PM]
thế là chuẩn rồi còn gì, cứ kệ nó thôi

[12:04]
đến bước watching này là done rồi

new messages
hoavt [12:05 PM]
install lau phet

hoatle [12:05 PM]
first time only

hoavt [12:05 PM]
ua

should increase the amount of inotify watchers on Ubuntu

# see https://github.com/erikras/react-redux-universal-hot-example/issues/1344#issuecomment-269190966

execute 'Increasing the amount of inotify watchers' do
    command "echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p"
    not_if "grep -q fs.inotify.max_user_watches=524288 /etc/sysctl.conf"
end

create and maintain brew tap to install specific vagrant versions

So that Mac users could use the specified vagrant version to avoid incompatibility issues:

$ brew tap teracyhq/homebrew-tap

and install the specified software versions (virtualbox, vagrant) or the latest ones.

This is required as vagrant 1.9 has problems, we need to use vagrant 1.8 instead for now. When 1.9 is stable enough, we'll upgrade it later with enough testing.

should have FAQ page

to answer FAQ

datphan [9:41 AM]  
sao chay grunt k dc nua anh @hoatle nhir

[9:41]  
vagrant ssh xong `grunt`

[9:41]  
k dc nua

[9:42]  
hay la phai npm install lai nhi

[9:42]  
de em thu

hoatle [9:42 AM]  
teracy-dev mới nhất thì dùng docker thôi em, ko có node hay npm hay gì đâu, em cần chạy docker ấy

datphan [9:42 AM]  
tuc la phai them Dockerfile vao ha anh

[9:43]  
co ho nao copy k nhi

hoatle [9:43 AM]  
đúng rồi em, em xem các project tương tự để copy + paste là được

[9:43]  
xem numerologist

[9:44]  
trong Dockerfile em install grunt vào rồi là chạy được grunt

[9:45]  
đấy là ví dụ Dockerfile-app-dev bên iorad a đang làm có grunt để chạy, support compass (sass)

hoatle [9:45 AM]  
added a Markdown (raw) snippet: Dockerfile-app-dev 


hoatle [9:49 AM]  
trùng hợp cũng có người hỏi tương tự luôn

[9:49]  
 ```ahuhu
npm ko chạy dc em ơi
anh dùng Docker chứ sao lại dùng npm ở trong VM
VM mặc định chỉ có install docker và docker-compose thôi, a follow docker workflow ấy
ko dùng npm trực tiếp ở VM
cách dùng thế nào thì a follow theo video hôm nọ đấy để nắm được basic rồi triển khai

oh, để anh xem lại ```

hoavt [9:51 AM]  
co khi nên có phần tổng hợp những vấn đề mọi người hay gặp phải

hoatle [9:52 AM]  
ừ, nên có FAQ

[9:52]  
bạn tạo issue rồi tổng hợp bên teracyhq/dev ấy

should improve how to configure rsync__exclude

on:

      {
        "type":"rsync",
        "host":"./workspace",
        "guest":"/home/vagrant/workspace",
        "rsync__exclude": [".git", ".idea/", "node_modules/", "bower_components/", ".npm/"]
      },

To override rsync__exclude, currently, we must copy paste a lot into vagrant_config_override.json:

{
  "vm": {
    "synced_folders":[ //see: http://docs.vagrantup.com/v2/synced-folders/index.html
      // {
      //   "type":"virtual_box", // virtual_box, "nfs", "rsync" or "smb", incase smb mount failed,
      //                         // ssh to vm and install cifs-utils allow vm mount smb directory
      //                         // mount.cifs needs to be used with dir_mode file_mode instead of dmode fmode
      //                         // Windows 7 needs powershell 3.0 to create smb share on windows
      //                         // http://www.microsoft.com/en-us/download/details.aspx?id=34595
      //   "host":"./docker",
      //   "guest":"/var/lib/docker/",
      //   "mount_options":[
      //     "dmode=775",
      //     "fmode=755"
      //   ]
      // },
      //TODO: how to keep and reused existing Docker images after destroying the VM?
      // or even attaching the existing data into it, so that developers should share the Docker images
      // remove /vagrant default file sync on the VM guest machine #184
      {
        "type": "virtual_box",
        "host": ".",
        "guest": "/vagrant",
        "disabled": true
      },
      {
        "type":"rsync",
        "host":"./workspace",
        "guest":"/home/vagrant/workspace",
        "rsync__exclude": [".git", ".idea/", "node_modules/", "bower_components/", ".npm/"] // change it here
      },
      // should persist docker auth token after login success #170
      {
        "type":"virtual_box",
        "host":"./home/.docker",
        "guest":"/home/vagrant/.docker",
        "mount_options":[
          "dmode=775",
          "fmode=755"
        ]
      }
    ]
  }
}

This is not good.

related: #203

failed to vagrant up on Mac, vagrant 1.8.7, need to update docs

hashicorp/vagrant#7969 (comment)

Need to check on Mac and update docs if required.

[12/20/16, 11:48:18 PM] Krysto: hi a, hnay e mới có chút tg để xem project ạ. E đang bị tắc ở đoạn `vagrant up`, nó báo lỗi
[12/20/16, 11:48:19 PM] Krysto: Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'bento/ubuntu-16.04' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
The box 'bento/ubuntu-16.04' could not be found or
could not be accessed in the remote catalog. If this is a private
box on HashiCorp's Atlas, please verify you're logged in via
`vagrant login`. Also, please double-check the name. The expanded
URL and error message are shown below:

URL: ["https://atlas.hashicorp.com/bento/ubuntu-16.04"]
Error:
[12/20/16, 11:48:35 PM] Krysto: có vẻ là e phải có account ở atlas.hashicorp.com
[12/20/16, 11:48:59 PM] Krysto: mà e vào thì ko thấy có register, chắc phải invite & cấp permission đúng ko ạ?
[12/20/16, 11:49:09 PM] Hoat Le: ủa, ko cần đâu mà nhỉ
[12/20/16, 11:49:18 PM] Hoat Le: em thử lại xem
[12/20/16, 11:49:40 PM] Krysto: thử lại bằng cách nào ạ?
[12/20/16, 11:49:50 PM] Krysto: vì e gõ vagrant up là nó sẽ báo lỗi đó ạ
[12/20/16, 11:49:55 PM] Hoat Le: em vagrant up lại xem
[12/20/16, 11:50:16 PM] Krysto: e thử vài lần rồi vẫn vậy thôi ạ
[12/20/16, 11:50:26 PM] Krysto: trước đây a có vagrant login chưa ạ?
[12/20/16, 11:50:28 PM] Hoat Le: vậy à, em dùng máy gì đó?
[12/20/16, 11:50:35 PM] Krysto: e dùng mac
[12/20/16, 11:51:38 PM] Hoat Le: em đợi a chút xem
[12/20/16, 11:51:43 PM] Krysto: dạ
[12/20/16, 11:53:37 PM] Hoat Le: em dùng vagrant --version mấy vậy?
[12/20/16, 11:53:56 PM] Krysto: 1.8.7 ạ
[12/20/16, 11:55:06 PM] Hoat Le: à, có lỗi này, em tạm thời fix theo cái này nhé https://github.com/mitchellh/vagrant/issues/7969#issuecomment-258878970
[12/20/16, 11:55:42 PM] Hoat Le: sao anh nhớ là ko bị nhỉ, anh sẽ test lại clean install xem có bị vậy không, nếu bị anh sẽ update docs cái này
[12/20/16, 11:55:54 PM] Hoat Le: I just sudo rm -rf /opt/vagrant/embedded/bin/curl and it works now. It's looked like vagrant can fall back to system's curl.
[12/20/16, 11:59:13 PM] Krysto: oh có vẻ được a ạ
[12/20/16, 11:59:17 PM] Krysto: nó đang downloading
[12/21/16, 12:00:02 AM] Hoat Le: vậy được rồi, nó download chắc mất tầm 20-30 phút đấy, lần đầu download base box thì lâu, các lần sau nó có ở máy rồi thì up lại từ đầu chỉ mất vài phút thôi
[12/21/16, 12:00:06 AM] Krysto: chắc nên update thêm vào docs anh ạ ^^
[12/21/16, 12:00:12 AM] Krysto: vâng

should support for vagrant plugin config settings

there are cases that we need to add additional vagrant config, usually when use more custom plugins.

We should not edit Vagrantfile directly but use vagrant_config.json instead (of course, override-able by vagrant_config_override.json, too)

plugins config section like:

{
  "plugins": {
    "vagrant-gatling-rsync": {
      "config_key": "gatling",
      "required": true,
      // auto rsync watch when up/ reload done
      // should try to reduce rsync latency to 0.5s instead of 1s #173
      "latency": 0.5, //0.5s
      "rsync_on_startup": true
    },
    "vagrant-rsync-back": {
      "required": true
    }
  }
}

should improve docs on manual setup for Linux (Ubuntu)

fix bug:

sudo apt-get install -r -y

=>

sudo apt-get install -f -y

add the missing line on:

    sudo dpkg -i <downloaded_file>
    sudo apt-get install -f -y

better if we can use commands that should auto get the right download link of packages.

should support for tmux workflow

tmux is very important for a productive workflow, we should leverage it (for power users).

support both tmux usage on host and tmux usage on guest VM.

should add eth0 interface network as the first default bridge network interface

so that LAN network card is the first priority to be used.

Maybe need to update this for advanced usage doc guide.

phuonglm [3:51 PM] 
Mac anh có 2 card mạng với laptop dùng LAN thì lỗi

hoatle [3:52 PM] 
ở đây có comment thêm chút thông tin https://github.com/teracyhq/dev/blob/develop/vagrant_config.json#L6

[3:52]  
a @phuonglm thêm note vào với trường hợp của anh thì nên settings thế nào, default settings là phổ biến nhất

[3:52]  
exceptions thì thêm note vào đó là được

phuonglm [3:54 PM] 
anh thi anh them cai interface cua anh vao truoc en0 la duoc

[3:54]  
vì nó thấy en0 là wifi trong khi wifi anh không connect ( anh dùng lan cho nó stable )

[3:55]  
tương tự với linux

[3:55]  
nhưng case của anh thì hiếm nên anh nghĩ mình cần thêm eth0 vào nữa là được

[3:55]  
eth0 vào trước wlan0

[3:56]  
có điều explain thì nó dài dòng nhỉ

should have documentation how to set up Docker swarm mode with teracy-dev

It's very easy.

  • make ~/teracy-dev as manager1 node
  • clone teracy-dev into ~/teracy-dev/workspace/teracy-dev-worker1 as worker 1 node
  • clone teracy-dev into ~/teracy-dev/workspace/teracy-dev-worker2 as worker 2 node

By default, we use 2048 MB of memory for the teracy-dev, if you're having low on RAM, use vagrant_config_override.json to set 1024MB memory for manager1 node, 512MB memory for worker1 and worker2 node.

After that, vagrant up sequentially the 3 teracy-dev VM.

And follow https://docs.docker.com/engine/swarm/swarm-tutorial/

Should have videos for demo.

should have "usage and development workflow best practices" docs

This is the everyday usage best practices for everyone.

  1. What must we master to work like a boss leveraging teracy-dev?
  • vagrant
  • teracy-dev usage (both basic + advanced)
  • git and git workflow
  • docker
  • vim
  • shell (bash)
  1. should use static public ip, use vagrant-hostsupdater to setup local.dev domain, setup DNS server to access that local.dev domain though LAN networks.

should add "en1: Wi-Fi (AirPort)" as default bridge network for macOS 10.11

=> default: Attempting graceful shutdown of VM...
==> default: Checking if box 'bento/ubuntu-16.04' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Using hostname "iorad.dev" as node name for Chef...
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Specific bridge '["en0: Wi-Fi (AirPort)", "wlan0"]' not found. You may be asked to specify
==> default: which network to bridge to.
==> default: Available bridged network interfaces:
1) en1: Wi-Fi (AirPort)
2) en0: Ethernet
3) en2: Thunderbolt 1

so that users don't have to choose.

add docs how to extend the base box with Chef on specific projects

Each specific projects have different requirements for configuration management.

The first step is to make sure teracy-dev is minimal enough for other projects to extend the VM by their needs.

Chef is our initial attempt, others will follow.

Need to upgrade the workflow of Chef.

should support specify which folders can be synced back

There are cases that we need to ignore auto-generated stuff (node_modules, bower_componets, vendors) to be synced into the VM.

But we'd like to check its source code into the host machine.

Currently, we must gen these stuff on the host machine (which again require the host machine to install dependent packages to do so, which is against our intention: the host should be minimal as possible).

If there's a way to allow this situation, it's great. This will boost productivity a lot.

related: smerrill/vagrant-rsync-back#6

should support for vagrant-hostsupdater plugin (optional)

https://github.com/cogitatio/vagrant-hostsupdater

This plugin in useful to add domain mapping with the IP of the VM.

Note that our current default config is dynamic bridged IP (for other devices within LAN network to access).

We can also enable access with domain host name by turning the host machine into a DNS server, add host machine IP as DNS server on the client device. (We'll open source this portable DNS server, soon)

So by doing this, we could achieve domain access through the LAN.
related: #186

When #186 is done, we could remove all fixed plugins configs on the Vagrantfile.

Until that, we still need this for default plugins support to achieve seamless upgrade goal.

getting started with nodejs docs

after installation, we should have getting started with different platform, frameworks.

better and clearer video + docs

- video hướng dẫn hello world những lúc viết code em ko phóng to lên, khó thấy
- ngoài ra, sao ko có docs get started
- nghĩa là video anh xem 1 lần thôi, mấy lần sau anh có quên thì anh chỉ cần xem docs
+ ok a, e sẽ rút kinh nghiệm để improve
+ sẽ có docs đó a, hiện tại đang tập trung cho docs

Let's use teracy-dev: the only truly open source universal productive development platform (works the same on Mac, Linux, Windows) with great Docker performance with mounted volumes

This issue is used for introducing teracy-dev with Docker community! (by referring the related github issues, they will notice this)

this is the reason why:

http://blog.teracy.com/2016/12/20/teracy-dev-the-only-truly-universal-productive-development-platform-with-docker-on-macos-linux-and-windows/

Let me introduce you teracy-dev, it will resolve all the problems mentioned on this question.

teracy-dev is created to set up a universal development platform which has the same development workflow on Mac, Linux and Windows with good developer experience and productivity in mind.

The project here: https://github.com/teracyhq/dev

and to get started: http://dev.teracy.org/docs/develop/getting_started.html

Don't hesitate to ask me any questions.

this should resolve lots of Docker problems, especially:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.