├── Dockerfile ├── LICENSE ├── README.md └── logo.png /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:22.16.0-bullseye 2 | 3 | LABEL org.opencontainers.image.authors="Dan Lynn " 4 | LABEL org.opencontainers.image.description="ember-cli development environment" 5 | 6 | # ember server on port 4200 7 | # livereload server on port 7020 (changed in v2.17.0 from 49153) 8 | # test server on port 7357 9 | EXPOSE 4200 7020 7357 10 | WORKDIR /myapp 11 | 12 | # run ember server on container start 13 | CMD ["ember", "server"] 14 | 15 | # Install watchman build dependencies 16 | RUN \ 17 | apt-get update -y &&\ 18 | apt-get install -y python-dev 19 | 20 | # install watchman 21 | # Note: See the README.md to find out how to increase the 22 | # fs.inotify.max_user_watches value so that watchman will 23 | # work better with ember projects. 24 | RUN \ 25 | git clone --branch=v4.9.0 --depth=1 https://github.com/facebook/watchman.git &&\ 26 | cd watchman &&\ 27 | ./autogen.sh &&\ 28 | CXXFLAGS=-Wno-error ./configure &&\ 29 | make &&\ 30 | make install 31 | 32 | # install bower 33 | RUN \ 34 | npm install -g bower@1.8.8 35 | 36 | # install chrome for default testem config (as of ember-cli 2.15.0) 37 | RUN \ 38 | apt-get update &&\ 39 | apt-get install -y \ 40 | apt-transport-https \ 41 | gnupg \ 42 | --no-install-recommends &&\ 43 | curl -sSL https://dl.google.com/linux/linux_signing_key.pub | apt-key add - &&\ 44 | echo "deb [arch=amd64] https://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list &&\ 45 | apt-get update &&\ 46 | apt-get install -y \ 47 | google-chrome-stable \ 48 | --no-install-recommends 49 | 50 | # tweak chrome to run with --no-sandbox option 51 | RUN \ 52 | sed -i 's/"$@"/--no-sandbox "$@"/g' /opt/google/chrome/google-chrome 53 | 54 | # set container bash prompt color to blue in order to 55 | # differentiate container terminal sessions from host 56 | # terminal sessions 57 | RUN \ 58 | echo 'PS1="\[\\e[0;94m\]${debian_chroot:+($debian_chroot)}\\u@\\h:\\w\\\\$\[\\e[m\] "' >> ~/.bashrc 59 | 60 | # install ember-cli 61 | RUN \ 62 | npm install -g ember-cli@6.5.0 63 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Dan Lynn 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![ember-cli logo](https://raw.githubusercontent.com/danlynn/ember-cli/master/logo.png) 2 | 3 | This image contains everything you need to have a working development environment for ember-cli. The container's working dir is /myapp so that you can setup a volume mapping your project dir to /myapp in the container. ([MIT License](https://github.com/danlynn/ember-cli/blob/master/LICENSE)) 4 | 5 | ![stars](https://img.shields.io/docker/stars/danlynn/ember-cli.svg) ![pulls](https://img.shields.io/docker/pulls/danlynn/ember-cli.svg) ![automated](https://img.shields.io/docker/automated/danlynn/ember-cli) ![MIT License](https://img.shields.io/github/license/danlynn/ember-cli.svg) 6 | 7 | 8 | `ember-cli 6.5.0 + node 22.16.0/24.2.0 + npm 10.9.2/11.3.0 + bower 1.8.8 + yarn 1.22.22/1.22.22 + chrome 137.0.7151.119 + watchman 4.9.0` 9 | 10 | ### Supported tags and respective `Dockerfile` links 11 | 12 | + [`6.5.0`,`6.5.0-node_22.16`,`latest` (6.5.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/6.5.0/Dockerfile) 13 | + [`6.5.0-node_24.2` (6.5.0-node_24.2/Dockerfile)](https://github.com/danlynn/ember-cli/blob/6.5.0-node_24.2/Dockerfile) 14 | + [`6.4.0`,`6.4.0-node_22.15` (6.4.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/6.4.0/Dockerfile) 15 | + [`6.4.0-node_23.11` (6.4.0-node_23.11/Dockerfile)](https://github.com/danlynn/ember-cli/blob/6.4.0-node_23.11/Dockerfile) 16 | + [`6.3.1`,`6.3.1-node_22.14` (6.3.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/6.3.1/Dockerfile) 17 | + [`6.3.1-node_23.11` (6.3.1-node_23.11/Dockerfile)](https://github.com/danlynn/ember-cli/blob/6.3.1-node_23.11/Dockerfile) 18 | + [`6.2.2`,`6.2.2-node_22.14` (6.2.2/Dockerfile)](https://github.com/danlynn/ember-cli/blob/6.2.2/Dockerfile) 19 | + [`6.2.2-node_23.9` (6.2.2-node_23.9/Dockerfile)](https://github.com/danlynn/ember-cli/blob/6.2.2-node_23.9/Dockerfile) 20 | + [`6.2.1`,`6.2.1-node_22.14` (6.2.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/6.2.1/Dockerfile) 21 | + [`6.2.1-node_23.8` (6.2.1-node_23.8/Dockerfile)](https://github.com/danlynn/ember-cli/blob/6.2.1-node_23.8/Dockerfile) 22 | + [`6.2.0`,`6.2.0-node_22.13` (6.2.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/6.2.0/Dockerfile) 23 | + [`6.2.0-node_23.7` (6.2.0-node_23.7/Dockerfile)](https://github.com/danlynn/ember-cli/blob/6.2.0-node_23.7/Dockerfile) 24 | + [`6.1.0`,`6.1.0-node_22.12` (6.1.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/6.1.0/Dockerfile) 25 | + [`6.1.0-node_23.5` (6.1.0-node_23.5/Dockerfile)](https://github.com/danlynn/ember-cli/blob/6.1.0-node_23.5/Dockerfile) 26 | + [`6.0.1`,`6.0.1-node_22.11` (6.0.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/6.0.1/Dockerfile) 27 | + [`6.0.1-node_23.1` (6.0.1-node_23.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/6.0.1-node_23.1/Dockerfile) 28 | + [`5.12.0`,`5.12.0-node_20.18` (5.12.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.12.0/Dockerfile) 29 | + [`5.12.0-node_22.9` (5.12.0-node_22.9/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.12.0-node_22.9/Dockerfile) 30 | + [`5.11.0`,`5.11.0-node_20.17` (5.11.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.11.0/Dockerfile) 31 | + [`5.11.0-node_22.7` (5.11.0-node_22.7/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.11.0-node_22.7/Dockerfile) 32 | + [`5.10.0`,`5.10.0-node_20.15` (5.10.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.10.0/Dockerfile) 33 | + [`5.10.0-node_22.4` (5.10.0-node_22.4/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.10.0-node_22.4/Dockerfile) 34 | + [`5.9.0`,`5.9.0-node_20.14` (5.9.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.9.0/Dockerfile) 35 | + [`5.9.0-node_22.2` (5.9.0-node_22.2/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.9.0-node_22.2/Dockerfile) 36 | 37 |
38 | Click here to see older versions 39 | 40 | + [`5.8.1`,`5.8.1-node_20.12` (5.8.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.8.1/Dockerfile) 41 | + [`5.8.1-node_22.1` (5.8.1-node_22.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.8.1-node_22.1/Dockerfile) 42 | + [`5.8.0`,`5.8.0-node_20.12` (5.8.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.8.0/Dockerfile) 43 | + [`5.8.0-node_21.7` (5.8.0-node_21.7/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.8.0-node_21.7/Dockerfile) 44 | + [`5.7.0`,`5.7.0-node_20.11` (5.7.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.7.0/Dockerfile) 45 | + [`5.7.0-node_21.7` (5.7.0-node_21.7/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.7.0-node_21.7/Dockerfile) 46 | + [`5.6.0`,`5.6.0-node_20.11` (5.6.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.6.0/Dockerfile) 47 | + [`5.6.0-node_21.6` (5.6.0-node_21.6/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.6.0-node_21.6/Dockerfile) 48 | + [`5.5.0`,`5.5.0-node_20.10` (5.5.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.5.0/Dockerfile) 49 | + [`5.5.0-node_21.4` (5.5.0-node_21.4/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.5.0-node_21.4/Dockerfile) 50 | + [`5.4.1`,`5.4.1-node_20.10` (5.4.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.4.1/Dockerfile) 51 | + [`5.4.1-node_21.2` (5.4.1-node_21.2/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.4.1-node_21.2/Dockerfile) 52 | + [`5.3.0`,`5.3.0-node_18.18` (5.3.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.3.0/Dockerfile) 53 | + [`5.3.0-node_20.7` (5.3.0-node_20.5/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.3.0-node_20.5/Dockerfile) 54 | + [`5.2.1`,`5.2.1-node_18.17` (5.2.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.2.1/Dockerfile) 55 | + [`5.2.1-node_20.5` (5.2.1-node_20.5/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.2.1-node_20.5/Dockerfile) 56 | + [`5.1.0`,`5.1.0-node_18.17` (5.1.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.1.0/Dockerfile) 57 | + [`5.1.0-node_20.5` (5.1.0-node_20.5/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.1.0-node_20.5/Dockerfile) 58 | + [`5.0.0`,`5.0.0-node_18.16` (5.0.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.0.0/Dockerfile) 59 | + [`5.0.0-node_20.3` (5.0.0-node_20.3/Dockerfile)](https://github.com/danlynn/ember-cli/blob/5.0.0-node_20.3/Dockerfile) 60 | + [`4.12.1`,`4.12.1-node_18.16` (4.12.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.12.1/Dockerfile) 61 | + [`4.12.1-node_20.2` (4.12.1-node_20.2/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.12.1-node_20.2/Dockerfile) 62 | + [`4.11.0`,`4.11.0-node_18.14` (4.11.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.11.0/Dockerfile) 63 | + [`4.11.0-node_19.7` (4.11.0-node_19.7/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.11.0-node_19.7/Dockerfile) 64 | + [`4.10.0`,`4.10.0-node_18.13` (4.10.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.10.0/Dockerfile) 65 | + [`4.10.0-node_19.4` (4.10.0-node_19.4/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.10.0-node_19.4/Dockerfile) 66 | + [`4.9.2`,`4.9.2-node_18.12` (4.9.2/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.9.2/Dockerfile) 67 | + [`4.9.2-node_19.3` (4.9.2-node_19.3/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.9.2-node_19.3/Dockerfile) 68 | + [`4.8.0`,`4.8.0-node_18.12` (4.8.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.8.0/Dockerfile) 69 | + [`4.8.0-node_19.1` (4.8.0-node_19.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.8.0-node_19.1/Dockerfile) 70 | + [`4.7.0`,`4.7.0-node_16.17` (4.7.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.7.0/Dockerfile) 71 | + [`4.7.0-node_18.9` (4.7.0-node_18.9/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.7.0-node_18.9/Dockerfile) 72 | + [`4.6.0`,`4.6.0-node_16.16` (4.6.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.6.0/Dockerfile) 73 | + [`4.6.0-node_18.7` (4.6.0-node_18.7/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.6.0-node_18.7/Dockerfile) 74 | + [`4.5.0`,`4.5.0-node_16.16` (4.5.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.5.0/Dockerfile) 75 | + [`4.5.0-node_18.5` (4.5.0-node_18.5/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.5.0-node_18.5/Dockerfile) 76 | + [`4.4.0`,`4.4.0-node_16.15` (4.4.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.4.0/Dockerfile) 77 | + [`4.4.0-node_18.2` (4.4.0-node_18.2/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.4.0-node_18.2/Dockerfile) 78 | + [`4.3.0`,`4.3.0-node_16.14` (4.3.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.3.0/Dockerfile) 79 | + [`4.3.0-node_17.8` (4.3.0-node_17.8/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.3.0-node_17.8/Dockerfile) 80 | + [`4.2.0`,`4.2.0-node_16.14` (4.2.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.2.0/Dockerfile) 81 | + [`4.2.0-node_17.6` (4.2.0-node_17.6/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.2.0-node_17.6/Dockerfile) 82 | + [`4.1.1`,`4.1.1-node_16.13` (4.1.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.1.1/Dockerfile) 83 | + [`4.1.1-node_17.3` (4.1.1-node_17.3/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.1.1-node_17.3/Dockerfile) 84 | + [`4.1.0`,`4.1.0-node_16.13` (4.1.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.1.0/Dockerfile) 85 | + [`4.1.0-node_17.3` (4.1.0-node_17.3/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.1.0-node_17.3/Dockerfile) 86 | + [`4.0.1`,`4.0.1-node_16.13` (4.0.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.0.1/Dockerfile) 87 | + [`4.0.1-node_17.3` (4.0.1-node_17.3/Dockerfile)](https://github.com/danlynn/ember-cli/blob/4.0.1-node_17.3/Dockerfile) 88 | + [`3.28.5`,`3.28.5-node_16.13` (3.28.5/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.28.5/Dockerfile) 89 | + [`3.28.2`,`3.28.2-node_14.18` (3.28.2/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.28.2/Dockerfile) 90 | + [`3.28.2-node_16.11` (3.28.2-node_16.11/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.28.2-node_16.11/Dockerfile) 91 | + [`3.28.0`,`3.28.0-node_14.17` (3.28.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.28.0/Dockerfile) 92 | + [`3.28.0-node_16.8` (3.28.0-node_16.8/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.28.0-node_16.8/Dockerfile) 93 | + [`3.27.0`,`3.27.0-node_14.17` (3.27.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.27.0/Dockerfile) 94 | + [`3.27.0-node_16.3` (3.27.0-node_16.3/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.27.0-node_16.3/Dockerfile) 95 | + [`3.26.1`,`3.26.1-node_14.16` (3.26.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.26.1/Dockerfile) 96 | + [`3.26.1-node_15.14` (3.26.1-node_15.14/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.26.1-node_15.14/Dockerfile) 97 | + [`3.26.0`,`3.26.0-node_14.16` (3.26.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.26.0/Dockerfile) 98 | + [`3.26.0-node_15.14` (3.26.0-node_15.14/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.26.0-node_15.14/Dockerfile) 99 | + [`3.25.3`,`3.25.3-node_14.16` (3.25.3/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.25.3/Dockerfile) 100 | + [`3.25.3-node_15.12` (3.25.3-node_15.12/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.25.3-node_15.12/Dockerfile) 101 | + [`3.25.2`,`3.25.2-node_14.16` (3.25.2/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.25.2/Dockerfile) 102 | + [`3.25.2-node_15.11` (3.25.2-node_15.11/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.25.2-node_15.11/Dockerfile) 103 | + [`3.25.1`,`3.25.1-node_14.16` (3.25.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.25.1/Dockerfile) 104 | + [`3.25.1-node_15.11` (3.25.1-node_15.11/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.25.1-node_15.11/Dockerfile) 105 | + [`3.25.0`,`3.25.0-node_14.15` (3.25.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.25.0/Dockerfile) 106 | + [`3.25.0-node_15.8` (3.25.0-node_15.8/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.25.0-node_15.8/Dockerfile) 107 | + [`3.24.0`,`3.24.0-node_14.15` (3.24.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.24.0/Dockerfile) 108 | + [`3.24.0-node_15.5` (3.24.0-node_15.5/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.24.0-node_15.5/Dockerfile) 109 | + [`3.23.0`,`3.23.0-node_14.15` (3.23.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.23.0/Dockerfile) 110 | + [`3.23.0-node_15.4` (3.23.0-node_15.4/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.23.0-node_15.4/Dockerfile) 111 | + [`3.22.0`,`3.22.0-node_12.19` (3.22.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.22.0/Dockerfile) 112 | + [`3.22.0-node_14.14` (3.22.0-node_14.14/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.22.0-node_14.14/Dockerfile) 113 | + [`3.21.2`,`3.21.2-node_12.18` (3.21.2/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.21.2/Dockerfile) 114 | + [`3.21.2-node_14.11` (3.21.2-node_14.11/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.21.2-node_14.11/Dockerfile) 115 | + [`3.21.0`,`3.21.0-node_12.18` (3.21.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.21.0/Dockerfile) 116 | + [`3.21.0-node_14.9` (3.21.0-node_14.9/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.21.0-node_14.9/Dockerfile) 117 | + [`3.20.0`,`3.20.0-node_12.18` (3.20.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.20.0/Dockerfile) 118 | + [`3.20.0-node_14.6` (3.20.0-node_14.6/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.20.0-node_14.6/Dockerfile) 119 | + [`3.18.0`,`3.18.0-node_12.16` (3.18.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.18.0/Dockerfile) 120 | + [`3.18.0-node_14.1` (3.18.0-node_14.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.18.0-node_14.1/Dockerfile) 121 | + [`3.17.0`,`3.17.0-node_12.16` (3.17.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.17.0/Dockerfile) 122 | + [`3.17.0-node_13.10` (3.17.0-node_13.10/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.17.0-node_13.10/Dockerfile) 123 | + [`3.16.0`,`3.16.0-node_12.16` (3.16.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.16.0/Dockerfile) 124 | + [`3.16.0-node_13.8` (3.16.0-node_13.8/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.16.0-node_13.8/Dockerfile) 125 | + [`3.15.2`,`3.15.2-node_12.14` (3.15.2/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.15.2/Dockerfile) 126 | + [`3.15.2-node_13.5` (3.15.2-node_13.5/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.15.2-node_13.5/Dockerfile) 127 | + [`3.14.0`,`3.14.0-node_12.13` (3.14.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.14.0/Dockerfile) 128 | + [`3.14.0-node_13.1` (3.14.0-node_13.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.14.0-node_13.1/Dockerfile) 129 | + [`3.13.0`,`3.13.0-node_10.16` (3.13.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.13.0/Dockerfile) 130 | + [`3.13.0-node_12.10` (3.13.0-node_12.10/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.13.0-node_12.10/Dockerfile) 131 | + [`3.12.0`,`3.12.0-node_10.16` (3.12.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.12.0/Dockerfile) 132 | + [`3.12.0-node_12.8` (3.12.0-node_12.8/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.12.0-node_12.8/Dockerfile) 133 | + [`3.11.0`,`3.11.0-node_10.16` (3.11.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.11.0/Dockerfile) 134 | + [`3.11.0-node_12.6` (3.11.0-node_12.6/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.11.0-node_12.6/Dockerfile) 135 | + [`3.10.1`,`3.10.1-node_10.15` (3.10.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.10.1/Dockerfile) 136 | + [`3.10.1-node_12.3` (3.10.1-node_12.3/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.10.1-node_12.3/Dockerfile) 137 | + [`3.9.0`,`3.9.0-node_10.15` (3.9.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.9.0/Dockerfile) 138 | + [`3.9.0-node_11.13` (3.9.0-node_11.13/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.9.0-node_11.13/Dockerfile) 139 | + [`3.8.2`,`3.8.2-node_10.15` (3.8.2/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.8.2/Dockerfile) 140 | + [`3.8.2-node_11.13` (3.8.2-node_11.13/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.8.2-node_11.13/Dockerfile) 141 | + [`3.7.1`,`3.7.1-node_10.15` (3.7.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.7.1/Dockerfile) 142 | + [`3.7.1-node_11.6` (3.7.1-node_11.6/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.7.1-node_11.6/Dockerfile) 143 | + [`3.6.1`,`3.6.1-node_10.15` (3.6.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.6.1/Dockerfile) 144 | + [`3.6.1-node_11.6` (3.6.1-node_11.6/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.6.1-node_11.6/Dockerfile) 145 | + [`3.5.1`,`3.5.1-node_10.13` (3.5.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.5.1/Dockerfile) 146 | + [`3.5.1-node_11.1` (3.5.1-node_11.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.5.1-node_11.1/Dockerfile) 147 | + [`3.4.3`,`3.4.3-node_8.12` (3.4.3/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.4.3/Dockerfile) 148 | + [`3.4.3-node_10.11` (3.4.3-node_10.11/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.4.3-node_10.11/Dockerfile) 149 | + [`3.3.0`,`3.3.0-node_8.11` (3.3.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.3.0/Dockerfile) 150 | + [`3.3.0-node_10.7` (3.3.0-node_10.7/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.3.0-node_10.7/Dockerfile) 151 | + [`3.2.0`,`3.2.0-node_8.11` (3.2.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.2.0/Dockerfile) 152 | + [`3.2.0-node_10.6` (3.2.0-node_10.6/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.2.0-node_10.6/Dockerfile) 153 | + [`3.1.4`,`3.1.4-node_8.11` (3.1.4/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.1.4/Dockerfile) 154 | + [`3.1.4-node_10.1` (3.1.4-node_10.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.1.4-node_10.1/Dockerfile) 155 | + [`3.0.0`,`3.0.0-node_8.9` (3.0.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.0.0/Dockerfile) 156 | + [`3.0.0-node_9.5` (3.0.0-node_9.5/Dockerfile)](https://github.com/danlynn/ember-cli/blob/3.0.0-node_9.5/Dockerfile) 157 | + [`2.18.2`,`2.18.2-node_8.9` (2.18.2/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.18.2/Dockerfile) 158 | + [`2.18.2-node_9.5` (2.18.2-node_9.5/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.18.2-node_9.5/Dockerfile) 159 | + [`2.17.1`,`2.17.1-node_8.9` (2.17.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.17.1/Dockerfile) 160 | + [`2.17.1-node_9.3` (2.17.1-node_9.3/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.17.1-node_9.3/Dockerfile) 161 | + [`2.16.2`,`2.16.2-node_6.11` (2.16.2/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.16.2/Dockerfile) 162 | + [`2.16.2-node_8.4` (2.16.2-node_8.4/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.16.2-node_8.4/Dockerfile) 163 | + [`2.15.1`,`2.15.1-node_6.11` (2.15.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.15.1/Dockerfile) 164 | + [`2.15.1-node_8.4` (2.15.1-node_8.4/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.15.1-node_8.4/Dockerfile) 165 | + [`2.14.2` (2.14.2/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.14.2/Dockerfile) 166 | + [`2.14.2-node_6.11` (2.14.2-node_6.11/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.14.2-node_6.11/Dockerfile) 167 | + [`2.13.3` (2.13.3/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.13.3/Dockerfile) 168 | + [`2.13.3-node_6.11` (2.13.3-node_6.11/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.13.3-node_6.11/Dockerfile) 169 | + [`2.12.2` (2.12.2/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.12.2/Dockerfile) 170 | + [`2.12.2-node_6.10` (2.12.2-node_6.10/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.12.2-node_6.10/Dockerfile) 171 | + [`2.11.1` (2.11.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.11.1/Dockerfile) 172 | + [`2.11.1-node_6.10` (2.11.1-node_6.10/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.11.1-node_6.10/Dockerfile) 173 | + [`2.10.1` (2.10.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.10.1/Dockerfile) 174 | + [`2.10.1-node_6.9` (2.10.1-node_6.9/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.10.1-node_6.9/Dockerfile) 175 | + [`2.9.1` (2.9.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.9.1/Dockerfile) 176 | + [`2.9.1-node_6.9` (2.9.1-node_6.9/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.9.1-node_6.9/Dockerfile) 177 | + [`2.8.0` (2.8.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.8.0/Dockerfile) 178 | + [`2.7.0` (2.7.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.7.0/Dockerfile) 179 | + [`2.6.3` (2.6.3/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.6.3/Dockerfile) 180 | + [`2.5.1` (2.5.1/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.5.1/Dockerfile) 181 | + [`2.4.3` (2.4.3/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.4.3/Dockerfile) 182 | + [`2.3.0` (2.3.0/Dockerfile)](https://github.com/danlynn/ember-cli/blob/2.3.0/Dockerfile) 183 | + [`1.13.15` (1.13.15/Dockerfile)](https://github.com/danlynn/ember-cli/blob/1.13.15/Dockerfile) 184 |
185 | 186 | 187 | 188 | This image was originally based on: [geoffreyd/ember-cli](https://hub.docker.com/r/geoffreyd/ember-cli) (hat tip) 189 | 190 | 191 | ## Example Ember Octane app using docker-compose 192 | 193 | ![ember octane quick start guide tutorial](https://github.com/danlynn/ember-cli-docker-compose-template/blob/gh-pages/ember-cli-octane-demo-anim.gif?raw=true) 194 | 195 | This example runs through the [Quick Start](https://octane-guides-preview.emberjs.com/release/getting-started/quick-start/) ember octane guide tutorial. 196 | It follows the Quick Start instructions at [ember-cli-docker-compose-template](https://github.com/danlynn/ember-cli-docker-compose-template) for using the [danlynn/ember-cli](https://hub.docker.com/r/danlynn/ember-cli/) docker image with docker-compose. 197 | 198 | [Click here](https://danlynn.github.io/ember-cli-docker-compose-template/) to view the video full-size and with playback controls. 199 | 200 | ## How to use 201 | 202 | The absolutely easiest way to use this ember-cli docker image is to use docker-compose. I've put together a git repo that contains a stub [ember-cli docker-compose template](https://github.com/danlynn/ember-cli-docker-compose-template) project that makes this a snap! Full details of the optimized docker-compose environment for developing ember-cli project can be found in that repo's [README](https://github.com/danlynn/ember-cli-docker-compose-template). 203 | 204 | Basically, it creates a new project directory with the following files: 205 | 206 | ``` 207 | ember-project 208 | docker-compose.yml 209 | README-template.md 210 | bash 211 | ember 212 | serve 213 | ``` 214 | 215 | The `docker-compose.yml` is configured to use this [danlynn/ember-cli](https://cloud.docker.com/u/danlynn/repository/docker/danlynn/ember-cli) docker image from dockerhub and looks like this: 216 | 217 | ``` 218 | version: '2' 219 | 220 | services: 221 | ember: 222 | image: danlynn/ember-cli:latest 223 | volumes: 224 | - .:/myapp 225 | - .bash_history:/root/.bash_history 226 | - node_modules:/myapp/node_modules 227 | tmpfs: 228 | - /myapp/tmp 229 | ports: 230 | - "4200:4200" 231 | - "7020:7020" 232 | - "7357:7357" 233 | 234 | volumes: 235 | node_modules: 236 | ``` 237 | 238 | The `bash`, `ember`, and `serve` commands are [shortcuts](https://github.com/danlynn/ember-cli-docker-compose-template#shortcuts) for performing the most common ember dev tasks. 239 | 240 | ### Quick start instructions: 241 | 242 | Copy and run the following 3 lines in your terminal to create a new ember app named 'ember-project' and then host it on [http://locahost:4200](http://locahost:4200): 243 | 244 | ``` 245 | $ proj_dir='ember-project' && curl -Ls https://github.com/danlynn/ember-cli-docker-compose-template/archive/master.zip > "$proj_dir.zip" && unzip -qq -j "$proj_dir.zip" -d "$proj_dir" && rm "$proj_dir.zip" && cd "$proj_dir" && mv README.md README-template.md && ls -l 246 | $ ./ember init 247 | $ ./serve 248 | ``` 249 | 250 | Replace the "ember-project" at the beginning with the name to use for the new project dir. This first line will create a new directory named "ember-project" populated with the contents of the ember-cli-docker-compose-template repo from github then cd into that directory ready to use. The last 2 lines are common commands that use the 'shortcuts' to run the ember command in the container and then start the ember server. 251 | 252 | 253 | ### Slightly more detailed instructions: 254 | 255 | More detailed usage instructions can be found in the [ember-cli docker-compose template](https://github.com/danlynn/ember-cli-docker-compose-template#slightly-more-detailed-instructions) repo [README](https://github.com/danlynn/ember-cli-docker-compose-template#slightly-more-detailed-instructions). 256 | 257 | 258 | ## Straight docker usage 259 | 260 | You can ignore docker-compose completely and simply use straight docker commands to interact with your ember project in the container. 261 | 262 | ### Command Usage for `docker run` 263 | 264 | Basically put `docker run --rm -ti -v $(pwd):/myapp danlynn/ember-cli:6.5.0` before any command you run. 265 | 266 | Example: 267 | 268 | ``` 269 | $ docker run --rm -ti -v $(pwd):/myapp danlynn/ember-cli:6.5.0 npm install 270 | $ docker run --rm -ti -v $(pwd):/myapp danlynn/ember-cli:6.5.0 bower --allow-root install bootstrap 271 | $ docker run --rm -ti -v $(pwd):/myapp danlynn/ember-cli:6.5.0 ember generate model user 272 | $ docker run --rm -ti -v $(pwd):/myapp -p 4200:4200 -p 7020:7020 -p 7357:7357 danlynn/ember-cli:6.5.0 273 | ``` 274 | 275 | Note that the `--rm` prevents a bunch of stopped containers from accumulating from these one-off commands. They take up space and since pretty much any change made by these commands will only affect what is in your project dir (/myapp in the container), there is no need to keep them around. 276 | 277 | ### Launching bash shell then running commands directly 278 | 279 | You could simply launch into a bash shell and execute the commands in the normal fashion: 280 | 281 | ``` 282 | $ mkdir new_ember_app 283 | $ cd new_ember_app 284 | $ docker run --rm -it -v $(pwd):/myapp -p 4200:4200 -p 7020:7020 -p 7357:7357 danlynn/ember-cli:6.5.0 bash 285 | 286 | root@9ad4805d2b50:/myapp# ember init 287 | root@9ad4805d2b50:/myapp# ember init --yarn 288 | root@9ad4805d2b50:/myapp# npm install 289 | root@9ad4805d2b50:/myapp# bower --allow-root install 290 | root@9ad4805d2b50:/myapp# ember server 291 | root@9ad4805d2b50:/myapp# ember test 292 | root@9ad4805d2b50:/myapp# ember test --server 293 | ``` 294 | 295 | Note that bash had to be launched with `-p 4200:4200 -p 7020:7020` in order to be able to access the `ember server` on port 4200 and enable Livereload on port 7020. The `-p 7357:7357` is needed if you intend to run `ember test --server`. 296 | 297 | Also note that the `npm install` is done automagically by the `ember init` command on newer versions of ember. Also, `bower --allow-root install` is not used as much anymore. There are no bower packages or dependencies in the default project created by `ember init`. Using the `--yarn` option on `ember init --yarn` will use yarn instead of npm to install dependencies. 298 | 299 | Also note that both npm and bower are pretty much being replaced by yarn. Newer versions of ember-cli have built-in support for yarn on many commands. Yarn works smoothly in place of npm. Yarn can also replace your use of bower. However, even though yarn used to support bower file formats directly, it no longer does. You should instead use yarn's support for installing front-end web components. 300 | 301 | 302 | ## Troubleshooting 303 | 304 | + ### Watchman watch limit error 305 | 306 | While the ember-cli server is running in the docker container, it will detect changes to the ember webapp files. These changes will automagically be detected and the associated files will be recompiled and the browser will auto-reload showing the changes. 307 | 308 | Note, however, that if you get an error something like: 309 | 310 | ``` 311 | ember_1 | Error: A non-recoverable condition has triggered. Watchman needs your help! 312 | ember_1 | The triggering condition was at timestamp=1450119416: inotify-add-watch(/myapp/node_modules/ember-cli/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexify/node_modules/readable-stream/doc) -> The user limit on the total number of inotify watches was reached; increase the fs.inotify.max_user_watches sysctl 313 | ember_1 | All requests will continue to fail with this message until you resolve 314 | ember_1 | the underlying problem. You will find more information on fixing this at 315 | ember_1 | https://facebook.github.io/watchman/docs/troubleshooting.html#poison-inotify-add-watch 316 | ``` 317 | 318 | This means that watchman is running out of resources trying to track all the files in a large ember app. To increase the `fs.inotify.max_user_watches` count to something that is more appropriate for an ember app, stop your docker-compose server by hitting ctrl-c (or `docker-compose stop server` if necessary) then execute the following command: 319 | 320 | ``` 321 | $ docker run --rm --privileged danlynn/ember-cli:3.7.1 sysctl -w fs.inotify.max_user_watches=524288 322 | ``` 323 | 324 | Note that this will affect all containers that run on the current docker-machine from this point forward because `fs.inotify.max_user_watches` is a system-wide setting. This shouldn't be a big deal however, so go ahead and give it a try. Then start the docker-compose service again with 325 | 326 | ``` 327 | $ docker-compose up 328 | ``` 329 | 330 | + ### Ember build system crashing 331 | 332 | Some IDEs (Intelli-J) have features that can wreak havoc with the build system. If the IDE quickly writes temp files into the project tree then deletes them before or while the Ember build system is processing the changes then the build system can crash. 333 | 334 | When this happens, you will see something like the following in the build console: 335 | 336 | ``` 337 | ember_1 | file deleted templates/application.hbs___jb_old___ 338 | ember_1 | file deleted templates/application.hbs___jb_tmp___ 339 | ember_1 | file changed templates/application.hbs 340 | ember_1 | Cannot find module 'broccoli/package' 341 | ember_1 | 342 | ember_1 | 343 | ember_1 | Stack Trace and Error Report: /tmp/error.dump.644b7ae2dd9e56d5eef7b92b898c1235.log 344 | ember_1 | TypeError: Cannot read property 'broccoliNode' of undefined 345 | ``` 346 | 347 | The fix is to change your IDE's settings in order to avoid this behavior. For Intelli-J IDEs, it is the "safe write" feature that causes additional transient files to be generated and quickly deleted upon every save. This feature can be turned OFF without affecting IDE behavior by going to Settings > Appearance & Behavior > System Settings and then unchecking the 'Use "safe write" (save changes to a temporary file first)' checkbox. After turning this feature OFF, you can make changes to your files and the ember build system will pick them up and perform builds without further issue. 348 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danlynn/ember-cli/3d0791a8d927186852e35ac120d990fd2a29bc21/logo.png --------------------------------------------------------------------------------