Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/marcoturi/ionic-docker

An ionic image for CI
https://github.com/marcoturi/ionic-docker

android chrome-headless ci cordova doker gitlab-ci ionic scss-lint yarn

Last synced: about 16 hours ago
JSON representation

An ionic image for CI

Awesome Lists containing this project

README

        

[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://tldrlegal.com/license/mit-license#summary) [![Docker Hub](https://img.shields.io/badge/docker-ready-blue.svg)](https://registry.hub.docker.com/u/marcoturi/ionic) [![](https://images.microbadger.com/badges/image/marcoturi/ionic.svg)](https://microbadger.com/images/marcoturi/ionic "Get your own image badge on microbadger.com") [![](https://images.microbadger.com/badges/version/marcoturi/ionic.svg)](https://microbadger.com/images/marcoturi/ionic "Get your own version badge on microbadger.com")

# Ionic-docker
A ionic 1/2 image to be used with Gitlab CI

### Inspired by:
- https://github.com/procoders/ionic-docker
- https://hub.docker.com/r/webnicer/protractor-headless/~/dockerfile/
- https://github.com/agileek/docker
- http://stackoverflow.com/questions/29558444/angularjs-grunt-bower-gitlab-ci-setup-for-testing
- https://github.com/tippiq/docker-protractor

### Features
- Node
- Npm or Yarn
- Ionic
- Cordova
- Android sdk and build tools
- Ready to run Google Chrome Headless for e2e tests
- Ruby
- Scss-lint support

## Usage

```
docker run -ti --rm -p 8100:8100 -p 35729:35729 marcoturi/ionic
```
If you have your own ionic sources, you can launch it with:

```
docker run -ti --rm -p 8100:8100 -p 35729:35729 -v /path/to/your/ionic-project/:/myApp:rw marcoturi/ionic
```

### Automation
With this alias:

```
alias ionic="docker run -ti --rm -p 8100:8100 -p 35729:35729 --privileged -v /dev/bus/usb:/dev/bus/usb -v ~/.gradle:/root/.gradle -v \$PWD:/myApp:rw marcoturi/ionic ionic"
```

> Due to a bug in ionic, if you want to use ionic serve, you have to use --net host option :

```
alias ionic="docker run -ti --rm --net host --privileged -v /dev/bus/usb:/dev/bus/usb -v ~/.gradle:/root/.gradle -v \$PWD:/myApp:rw marcoturi/ionic ionic"
```

> Know you need gradle for android, I suggest to mount ~/.gradle into /root/.gradle to avoid downloading the whole planet again and again

you can follow the [ionic tutorial](http://ionicframework.com/getting-started/) (except for the ios part...) without having to install ionic nor cordova nor nodejs on your computer.

```bash
ionic start myApp tabs
cd myApp
ionic serve
# If you didn't used --net host, be sure to chose the ip address, not localhost, or you would not be able to use it
```
open http://localhost:8100 and everything works.

### Android tests
You can test on your android device, just make sure that debugging is enabled.

```bash
cd myApp
ionic cordova platform add android
ionic cordova build android
ionic cordova run android
```

### FAQ
* The application is not installed on my android device
* Try `docker run -ti --rm -p 8100:8100 -p 35729:35729 --privileged -v /dev/bus/usb:/dev/bus/usb -v \$PWD:/myApp:rw marcoturi/ionic adb devices` your device should appear
* The adb devices show nothing whereas I can see it when I do `adb devices` on my computer
* You can't have adb inside and outside docker at the same time, be sure to `adb kill-server` on your computer before using this image