9c416f539e541647eb46e2b29df4aed8a400dfa6
[discourse_docker.git] / image / Dockerfile
1 # DOCKER-VERSION 0.6.4
2
3 # 13.10 - 04 has a missing ppa for postgresql 9.2 at the moment (26/10/2013)
4 FROM ubuntu:12.10
5
6 MAINTAINER Sam Saffron "https://twitter.com/samsaffron"
7
8 RUN apt-get -y update &&\
9 apt-get -y upgrade &&\
10 apt-get -y install software-properties-common &&\
11 add-apt-repository -y ppa:rwky/redis &&\
12 add-apt-repository -y ppa:nginx/stable &&\
13 add-apt-repository -y ppa:pitti/postgresql &&\
14 add-apt-repository ppa:chris-lea/node.js &&\
15 apt-get -y update &&\
16 apt-get install -y build-essential git curl libxml2-dev \
17 libxslt-dev libcurl4-openssl-dev \
18 libssl-dev libyaml-dev libtool \
19 libxslt-dev libxml2-dev gawk curl \
20 pngcrush imagemagick \
21 postgresql-9.2 postgresql-client-9.2 \
22 postgresql-contrib-9.2 libpq-dev libreadline-dev \
23 nginx wget language-pack-en sudo cron \
24 psmisc &&\
25 dpkg-divert --local --rename --add /sbin/initctl &&\
26 ln -s /bin/true /sbin/initctl &&\
27 apt-get install -y redis-server haproxy openssh-server &&\
28 echo 'gem: --no-document' >> /etc/gemrc &&\
29 mkdir /src && cd /src &&\
30 git clone https://github.com/sstephenson/ruby-build.git && cd / &&\
31 cd /src/ruby-build &&\
32 ./install.sh && cd / &&\
33 rm -rf /src/ruby-build &&\
34 ruby-build 2.0.0-p247 /usr/local &&\
35 gem update --system &&\
36 gem install bundler --pre &&\
37 cd / && git clone https://github.com/SamSaffron/pups.git
38
39 RUN mkdir /jemalloc && cd /jemalloc && wget http://www.canonware.com/download/jemalloc/jemalloc-3.4.1.tar.bz2 &&\
40 tar -xvjf jemalloc-3.4.1.tar.bz2 && cd jemalloc-3.4.1 && ./configure && make &&\
41 mv lib/libjemalloc.so.1 /usr/lib && cd / $$ rm -rf /jemalloc &&\
42 apt-get install -y runit && apt-get clean && locale-gen en_US
43
44 # Discourse specific bits
45 RUN useradd discourse -s /bin/bash -m -U &&\
46 mkdir /var/www && cd /var/www &&\
47 git clone --depth 1 https://github.com/discourse/discourse.git &&\
48 chown -R discourse:discourse /var/www/discourse && cd / &&\
49 cd /var/www/discourse &&\
50 sudo -u discourse RAILS4=1 bundle install -j4 --deployment \
51 --without test --without development &&\
52 cd /var/www/discourse/vendor/bundle &&\
53 find . -name tmp -type d | xargs rm -rf && cd /
54
55
56 # For a smaller but less flexible image:
57 #RUN apt-get -y autoremove build-essential gcc gcc-4.7 .+-dev
58 #RUN echo image size: $(du -hsx /)
59
60 # RUN cd /var/www/discourse && bundle exec rake db:test:prepare && bundle exec rspec
61
62 # mkdir -p /src/godeb && cd /src/godeb && curl -O https://godeb.s3.amazonaws.com/godeb-amd64.tar.gz &&\
63 # cd /src/godeb && tar -xzvf godeb-amd64.tar.gz &&\
64 # cd /src/godeb && ./godeb install &&\
65 # cd /src && git clone https://github.com/coreos/etcd.git &&\
66 # cd /src/etcd && ./build &&\
67 # cp /src/etcd/etcd /usr/local/bin &&\