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"]