| FROM ubuntu:xenial |
| |
| RUN apt-get update |
| RUN apt-get upgrade -y |
| # ------------------------------------------------------------------------------ |
| # Install base |
| RUN apt-get install -y clang liblist-moreutils-perl time supervisor build-essential g++ zip clang curl libssl-dev apache2-utils git libxml2-dev libx11-dev libxft-dev fontconfig libcairo2-dev gcc automake git cmake flex bison ctags gdb perl valgrind |
| RUN sed -i 's/^\(\[supervisord\]\)$/\1\nnodaemon=true/' /etc/supervisor/supervisord.conf |
| |
| # ------------------------------------------------------------------------------ |
| # set clang as default compiler because it is more verbose and has a static analyser |
| RUN export CC=clang |
| RUN export CXX=clang++ |
| |
| # ------------------------------------------------------------------------------ |
| # Install Node.js |
| RUN curl -L https://raw.githubusercontent.com/c9/install/master/install.sh | bash |
| RUN apt-get install -y nodejs |
| |
| # ------------------------------------------------------------------------------ |
| # Install Cloud9 |
| RUN git clone https://github.com/c9/core.git /cloud9 |
| RUN /cloud9/scripts/install-sdk.sh |
| |
| # Tweak standlone.js conf |
| RUN sed -i -e 's_127.0.0.1_0.0.0.0_g' /cloud9/configs/standalone.js |
| |
| RUN touch /etc/supervisor/conf.d/cloud9.conf |
| |
| RUN echo '[program:cloud9]' >> /etc/supervisor/conf.d/cloud9.conf |
| RUN echo 'command = nodejs /cloud9/server.js --listen 0.0.0.0 --port 8080 -w /workspace --collab' >> /etc/supervisor/conf.d/cloud9.conf |
| RUN echo 'directory = /cloud9' >> /etc/supervisor/conf.d/cloud9.conf |
| RUN echo 'user = root' >> /etc/supervisor/conf.d/cloud9.conf |
| RUN echo 'autostart = true' >> /etc/supervisor/conf.d/cloud9.conf |
| RUN echo 'autorestart = true' >> /etc/supervisor/conf.d/cloud9.conf |
| RUN echo 'stdout_logfile = /var/log/supervisor/cloud9.log' >> /etc/supervisor/conf.d/cloud9.conf |
| RUN echo 'stderr_logfile = /var/log/supervisor/cloud9_errors.log' >> /etc/supervisor/conf.d/cloud9.conf |
| RUN echo 'environment = NODE_ENV="production"' >> /etc/supervisor/conf.d/cloud9.conf |
| |
| # ------------------------------------------------------------------------------ |
| # Add volumes |
| RUN mkdir /workspace |
| VOLUME /workspace |
| |
| # ------------------------------------------------------------------------------ |
| # Clean up APT when done. |
| RUN apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/* |
| |
| EXPOSE 22 |
| EXPOSE 8080 |
| |
| CMD ["supervisord", "-c", "/etc/supervisor/supervisord.conf"] |