2018-07-11 13:30:32 +00:00
# Embark for Docker
2018-07-24 23:56:07 +00:00
## Quick start
In a Bash shell:
``` shell
source < (curl 'https://raw.githubusercontent.com/embark-framework/embark-docker/master/run.sh')
2018-07-25 03:27:03 +00:00
run_embark demo
2018-07-24 23:56:07 +00:00
cd embark_demo
2018-07-25 03:27:03 +00:00
run_embark
2018-07-24 23:56:07 +00:00
```
With overrides:
``` shell
export EMBARK_DOCKER_EXTRA_RUN_OPTS='--rm'
export EMBARK_DOCKER_IMAGE=statusim/embark
export EMBARK_DOCKER_TAG=custom
export EMBARK_DOCKERFILE='https://github.com/embark-framework/embark-docker.git#some/branch'
2018-07-25 03:00:41 +00:00
export EMBARK_VERSION='embark-framework/embark#features/branch'
2018-07-24 23:56:07 +00:00
export NODE_TAG=10.7.0
export RUNNER='https://raw.githubusercontent.com/embark-framework/embark-docker/some/branch/run.sh'
docker build \
2018-07-25 03:02:27 +00:00
--build-arg EMBARK_VERSION=$EMBARK_VERSION \
--build-arg NODE_TAG=$NODE_TAG \
-t $EMBARK_DOCKER_IMAGE:$EMBARK_DOCKER_TAG \
$EMBARK_DOCKERFILE
2018-07-24 23:56:07 +00:00
source < (curl $RUNNER)
2018-07-25 03:27:03 +00:00
run_embark demo
2018-07-24 23:56:07 +00:00
cd embark_demo
2018-07-25 03:27:03 +00:00
run_embark
2018-07-24 23:56:07 +00:00
```
2018-07-25 03:04:40 +00:00
Review the [Dockerfile ](https://github.com/embark-framework/embark-docker/blob/master/Dockerfile ) and [run.sh ](https://github.com/embark-framework/embark-docker/blob/master/run.sh#L66-L70 ) for all possible overrides.
2018-07-24 23:56:07 +00:00
2018-07-25 03:27:03 +00:00
### Shortcuts
The following are equivalent:
``` shell
run_embark demo
```
``` shell
run_embark embark demo
```
These are also equivlent:
``` shell
run_embark
```
``` shell
run_embark embark run
```
Other `embark` commands and non-embark commands should be indicated explicitly:
``` shell
run_embark embark version
```
``` shell
run_embark ps -ef
```
2018-07-11 13:30:32 +00:00
## Updating versions
* Open `Dockerfile`
2018-07-24 23:55:54 +00:00
* On the `ARG` directives, update necessary versions.
2018-07-11 13:30:32 +00:00
## Building
2018-07-24 23:55:40 +00:00
Building requires Docker to be installed on your local machine.
2018-07-11 18:53:08 +00:00
### Scripted
If you have Ruby installed in your system, run:
2018-07-11 13:30:32 +00:00
```
2018-07-11 18:53:08 +00:00
$ ruby script/build
```
To release, add `--release` as a parameter of the build script.
### Manually
Building and releasing manually isn't too hard either, but there are a couple steps.
#### Tags
To facilitate the images being found, we tag them with the following rules (as an example, the `3.1.5` version will be used.)
- Tag with `statusim/embark:latest` if `3.1.5` is the latest version.
- Tag with `statusim/embark:3.1.5`
- Tag with `statusim/embark:3.1` if `3.1.5` is the highest patch level on `3.1`
2018-07-11 18:57:03 +00:00
- Tag with `statusim/embark:3` if `3.1.5` is the highest minor and patch level on `3`
2018-07-11 18:53:08 +00:00
#### Generating the image
To generate the image, run:
```
docker build . -t statusim/embark:< version > [...tags]
2018-07-11 13:30:32 +00:00
```
## Releasing
Releasing requires that you're authenticated to Docker Hub. To do so, run:
```
$ docker login
```
2018-07-11 18:53:08 +00:00
### Scripted
If you have Ruby installed in your system, run:
```
$ ruby script/build --release
```
### Manual
Pushing the tags manually implies that the image has been previously built. To push your local images, run:
2018-07-11 13:30:32 +00:00
```
2018-07-11 18:53:08 +00:00
docker push statusim/embark:version
2018-07-11 13:30:32 +00:00
```