elocke / sming-docker

Sming Docker Container

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sming Docker

Sming docker container is used to simplify environment configuration for cross-platform systems.

You will get a self-contained browser based C++ development where you can build your sming projects and flash them to your ESP device!

Features (beta)

  • KiteMatic integration for Windows & MacOS
  • Out-of-the-box experience, just run the docker container
  • Fully tested and compatible ESP8266 dev environment without hassle
  • Alternative Web-Browser IDE (c9)
  • NetBeans Integration with Code assistance and Doxygen
  • Firmware flashing
  • Convinient terminal connection (PR pending): Automatic (re) connection after every make flash

TODO (soon)

  • ?

If something is not working, please refer to TROUBLESHOOTING. Kitematic is, pretty much, a GUI for docker-machine. You can use it instead of Kitematic.

Install & Configure Docker

Prerequisites:

  • BEFORE GOING ANY FURTHER Make sure Virtualization is enabled in BIOS
  • Kitematic doesn't support 32 bit Windows (yet) If you have 32 bit Windows follow docker-machine way.
  • Make sure to remove any previous boot2docker versions and it's vms before you proceed
  • If you had virtualbox before Kitematic installation, plese remove all Host-Networks

Windows

  • Download and install latest Kitematic
  • Make sure c:\Users\<Your_Username>\sming exists - docker will map this directory to ~/workspace.
  • Place your project (Basic_Blink) to c:\Users\<Your_Username>\sming. You will need it to import to NetBeans.

Get sming-docker container from docker hub

  • Click New
  • Search for sming
  • Click Create

Open Docker CLI

Click on DOCKER CLI button

Make sure to add USB port forwarding

Stop docker-machine

docker-machine stop kitematic

Configure VirtualBox:

This will allow docker get access to usb2serial device connected to our host computer.

Start docker-machine back

docker-machine start kitematic

Run docker container with usb port forwarding (from Docker cli)

Run docker container with usb port forwarding

(There is a feature request that will allow skip this step). Please vote for it!

docker run -it -d -p 8181:80 -p 8122:22 -p 4075:4075 --device=//dev/ttyUSB0 -v /c/Users/$env:username/sming/:/root/workspace/ kireevco/sming-docker

USB device has to be connected. Otherwise omit --device=//dev/ttyUSB0 portion, c:\Users\<your_user>\sming also has to exist

Open a browser pointing to c9 IDE

MacOS

  • Download and install latest Kitematic:
  • Make sure ~/docker/sming-docker/workspace/ exists

Get sming-docker container from docker hub

  • Click New
  • Search for sming
  • Click Create

Open Docker CLI

Click on DOCKER CLI button

Make sure to add USB port forwarding

Stop docker-machine

docker-machine stop kitematic

Configure VirtualBox

This will allow docker get access to usb2serial device connected to our host computer.

Start docker-machine back

docker-machine start kitematic

Run docker container with usb port forwarding (from Docker cli)

(There is a feature request that will allow skip this step). Please vote for it!

docker run -it -d -p 8181:80 -p 8122:22 -p 4075:4075 --device=/dev/ttyUSB0 -v ~/docker/sming-docker/workspace/:/root/workspace/ kireevco/sming-docker

USB device has to be connected. Otherwise omit --device=/dev/ttyUSB0 portion, ~/docker/sming-docker/workspace/ also has to exist.

Open a browser pointing to c9 IDE

Linux

Install latest docker for your distro. For ubuntu run (this will add docker PPA repo also):

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
sudo sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
sudo apt-get install lxc-docker

Not necessary, but useful - add yourself to the docker group, so you can controll docker containers without 'sudo':

adduser <me> docker

Fetch latest sming-docker:

docker pull sming-docker

Run the conatiner, binding directory with workspace to the container and binding container's ports to localhost:

docker run -d --name esp -p 8180:80 -p 8122:22 -p 4075:4075 -p 10000:10000 \
-v ~/my_workspace/esp8266:/root/workspace:rw \
kireevco/sming-docker

If you want to use git inside the container, it's good to make your keys available inside. Use the following command instead:

docker run -d --name esp -p 8180:80 -p 8122:22 -p 4075:4075 -p 10000:10000 \
-v ~/.ssh:/root/.ssh \
-v ~/my_workspace/esp8266:/root/workspace:rw \
kireevco/sming-docker

If you want to make your USB-serial converter available in the container, add:

--device=/dev/ttyUSB0

to the docker run command above, but this will force you to have it attached to USB every time you start the container.

Now just open in your browser cloud9 IDE.

Additional Tools & Settings

NetBeans IDE (recommended)

NetBeans can connect to a docker container and use docker environment to build. Code completion & documentation works well. See NETBEANS.md

Global Environmental Variables

Currently in order to pass additional variables to docker we need to pass it adding each variable with -e parameter like this: docker run -e WIFI_SSID=YourWifiAP -e WIFI_PWD=YourWifiPass.

Parameters WIFI_SSID and WIFI_PWD can be also specified in Makefile-user.mk:

WIFI_SSID = YourWifiAP
WIFI_PWD = YourWifiPass

This repository contains Dockerfile of Sming framework, esp-open-sdk and Cloud9 IDE with Cloud 9 C++ Plugin. Automated build published to the public Docker Hub Registry.

Based on kdelfour/cloud9-docker

About

Sming Docker Container

License:MIT License