| FROM gliderlabs/alpine:latest |
| |
| # ------------------------------------------------------------------------------ |
| # Install base |
| |
| RUN apk update && \ |
| apk upgrade |
| |
| #fetching tools |
| RUN apk add --no-cache curl wget ca-certificates openssl-dev apache2-utils |
| |
| #compile tool |
| RUN apk add --no-cache build-base bash make cmake automake gcc g++ clang llvm libgcc libstdc++ |
| |
| #perl tool |
| RUN apk add --no-cache perl-dev perl-list-moreutils |
| |
| #vtr- requirement |
| RUN apk add --no-cache git zip flex bison ctags libxml2-dev cairo-dev libxft-dev freetype-dev libx11-dev |
| |
| #debug tools |
| RUN apk add --no-cache gdb valgrind |
| |
| #cloud9 runs on nodejs |
| RUN apk add --no-cache nodejs nodejs-npm tmux supervisor |
| # ------------------------------------------------------------------------------ |
| # set clang as default compiler because it is more verbose and has a static analyser |
| RUN export CC=clang |
| RUN export CXX=clang++ |
| |
| # ------------------------------------------------------------------------------ |
| # Install Cloud9 |
| RUN git clone https://github.com/c9/core.git /cloud9 |
| RUN curl -s -L https://raw.githubusercontent.com/c9/install/master/link.sh | bash |
| 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 |
| |
| RUN echo '[supervisord]' >> /etc/supervisor.conf |
| RUN echo 'nodaemon=true' >> /etc/supervisor.conf |
| RUN echo 'pidfile=/var/run/supervisord.pid' >> /etc/supervisor.conf |
| RUN echo 'logfile=/var/log/supervisor/supervisord.log' >> /etc/supervisor.conf |
| |
| RUN echo '[program:cloud9]' >> /etc/supervisor.conf |
| RUN echo 'command = node /cloud9/server.js --listen 0.0.0.0 --port 8080 -w /workspace --collab -a admin:logmein' >> /etc/supervisor.conf |
| RUN echo 'directory = /cloud9' >> /etc/supervisor.conf |
| RUN echo 'user = root' >> /etc/supervisor.conf |
| RUN echo 'autostart = true' >> /etc/supervisor.conf |
| RUN echo 'autorestart = true' >> /etc/supervisor.conf |
| RUN echo 'stdout_logfile = /var/log/supervisor/cloud9.log' >> /etc/supervisor.conf |
| RUN echo 'stderr_logfile = /var/log/supervisor/cloud9_errors.log' >> /etc/supervisor.conf |
| RUN echo 'environment = NODE_ENV="production"' >> /etc/supervisor.conf |
| |
| # Add volumes |
| RUN mkdir /workspace && mkdir -p /var/log/supervisor |
| VOLUME /workspace |
| |
| EXPOSE 8080 |
| |
| CMD ["supervisord", "-c", "/etc/supervisor.conf"] |