|
|
|
@ -1,7 +1,7 @@
|
|
|
|
|
#
|
|
|
|
|
# Cartodb container
|
|
|
|
|
#
|
|
|
|
|
FROM ubuntu:16.04
|
|
|
|
|
FROM ubuntu:18.04
|
|
|
|
|
LABEL maintainer="Stefan Verhoeven <s.verhoeven@esciencecenter.nl>"
|
|
|
|
|
|
|
|
|
|
# Configuring locales
|
|
|
|
@ -14,8 +14,6 @@ ENV LANGUAGE en_US:en
|
|
|
|
|
ENV LC_ALL en_US.UTF-8
|
|
|
|
|
|
|
|
|
|
RUN useradd -m -d /home/cartodb -s /bin/bash cartodb && \
|
|
|
|
|
add-apt-repository -y ppa:chris-lea/redis-server && \
|
|
|
|
|
apt-get update && \
|
|
|
|
|
apt-get install -y -q \
|
|
|
|
|
build-essential \
|
|
|
|
|
autoconf \
|
|
|
|
@ -31,25 +29,23 @@ RUN useradd -m -d /home/cartodb -s /bin/bash cartodb && \
|
|
|
|
|
curl \
|
|
|
|
|
libgeos-c1v5 \
|
|
|
|
|
libgeos-dev \
|
|
|
|
|
libjson0 \
|
|
|
|
|
libjson-c-dev \
|
|
|
|
|
python-simplejson \
|
|
|
|
|
libjson0-dev \
|
|
|
|
|
proj-bin \
|
|
|
|
|
proj-data \
|
|
|
|
|
libproj-dev \
|
|
|
|
|
gdal-bin \
|
|
|
|
|
libgdal1-dev \
|
|
|
|
|
libgdal-dev \
|
|
|
|
|
postgresql-9.5 \
|
|
|
|
|
postgresql-client-9.5 \
|
|
|
|
|
postgresql-contrib-9.5 \
|
|
|
|
|
postgresql-server-dev-9.5 \
|
|
|
|
|
postgresql-plpython-9.5 \
|
|
|
|
|
postgresql-9.5-plproxy \
|
|
|
|
|
postgresql-9.5-postgis-2.2 \
|
|
|
|
|
postgresql-9.5-postgis-scripts \
|
|
|
|
|
postgresql-10 \
|
|
|
|
|
postgresql-client-10 \
|
|
|
|
|
postgresql-contrib-10 \
|
|
|
|
|
postgresql-server-dev-10 \
|
|
|
|
|
postgresql-plpython-10 \
|
|
|
|
|
postgresql-10-plproxy \
|
|
|
|
|
postgresql-10-postgis-2.4 \
|
|
|
|
|
postgresql-10-postgis-scripts \
|
|
|
|
|
postgis \
|
|
|
|
|
liblwgeom-2.2-5 \
|
|
|
|
|
liblwgeom-2.4-0 \
|
|
|
|
|
ca-certificates \
|
|
|
|
|
redis-server \
|
|
|
|
|
python2.7-dev \
|
|
|
|
@ -64,7 +60,7 @@ RUN useradd -m -d /home/cartodb -s /bin/bash cartodb && \
|
|
|
|
|
python-all-dev \
|
|
|
|
|
python-docutils \
|
|
|
|
|
openssl \
|
|
|
|
|
libreadline6 \
|
|
|
|
|
libreadline7 \
|
|
|
|
|
zlib1g \
|
|
|
|
|
zlib1g-dev \
|
|
|
|
|
libssl-dev \
|
|
|
|
@ -93,13 +89,14 @@ RUN useradd -m -d /home/cartodb -s /bin/bash cartodb && \
|
|
|
|
|
wget \
|
|
|
|
|
nginx-light \
|
|
|
|
|
net-tools \
|
|
|
|
|
ruby2.5-dev \
|
|
|
|
|
--no-install-recommends && \
|
|
|
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
|
|
|
|
RUN git config --global user.email you@example.com
|
|
|
|
|
RUN git config --global user.name "Your Name"
|
|
|
|
|
|
|
|
|
|
# Varnish 3, Ubuntu:16.04 comes with Varnish 4.1 which can't be run with anonymous admin telnet
|
|
|
|
|
# Varnish 3, Ubuntu:17.04 comes with Varnish 5.1 which can't be run with anonymous admin telnet
|
|
|
|
|
RUN cd /opt && \
|
|
|
|
|
wget http://varnish-cache.org/_downloads/varnish-3.0.7.tgz && \
|
|
|
|
|
tar -zxf varnish-3.0.7.tgz && \
|
|
|
|
@ -110,41 +107,14 @@ RUN cd /opt && \
|
|
|
|
|
cd /opt && \
|
|
|
|
|
rm -rf varnish-3.0.7 varnish-3.0.7.tgz
|
|
|
|
|
|
|
|
|
|
# ogr2ogr2 static build, see https://github.com/CartoDB/cartodb/wiki/How-to-build-gdal-and-ogr2ogr2
|
|
|
|
|
# using cartodb instruction got error https://trac.osgeo.org/gdal/ticket/6073
|
|
|
|
|
# https://github.com/OSGeo/gdal/compare/trunk...CartoDB:ogr2ogr2 has no code changes, so just use latest gdal tarball
|
|
|
|
|
RUN cd /opt && \
|
|
|
|
|
curl http://download.osgeo.org/gdal/2.1.1/gdal-2.1.1.tar.gz -o gdal-2.1.1.tar.gz && \
|
|
|
|
|
tar -zxf gdal-2.1.1.tar.gz && \
|
|
|
|
|
cd gdal-2.1.1 && \
|
|
|
|
|
./configure --disable-shared && \
|
|
|
|
|
make -j 4 && \
|
|
|
|
|
cp apps/ogr2ogr /usr/bin/ogr2ogr2 && \
|
|
|
|
|
cd /opt && \
|
|
|
|
|
rm -rf /opt/ogr2ogr2 /opt/gdal-2.1.1.tar.gz /root/.gitconfig /opt/gdal-2.1.1
|
|
|
|
|
|
|
|
|
|
# Install NodeJS
|
|
|
|
|
RUN curl https://nodejs.org/download/release/v6.9.2/node-v6.9.2-linux-x64.tar.gz| tar -zxf - --strip-components=1 -C /usr && \
|
|
|
|
|
npm install -g grunt-cli && \
|
|
|
|
|
npm install -g npm@3.10.9 && \
|
|
|
|
|
rm -r /tmp/npm-* /root/.npm
|
|
|
|
|
|
|
|
|
|
# Install rvm
|
|
|
|
|
ENV PATH /usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
|
|
|
RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3 && \
|
|
|
|
|
curl -sSL https://raw.githubusercontent.com/wayneeseguin/rvm/stable/binscripts/rvm-installer | bash -s stable --ruby && \
|
|
|
|
|
echo 'source /usr/local/rvm/scripts/rvm' >> /etc/bash.bashrc && \
|
|
|
|
|
/bin/bash -l -c rvm requirements && \
|
|
|
|
|
echo rvm_max_time_flag=15 >> ~/.rvmrc && \
|
|
|
|
|
/bin/bash -l -c 'rvm install 2.2.3' && \
|
|
|
|
|
/bin/bash -l -c 'rvm use 2.2.3 --default' && \
|
|
|
|
|
/bin/bash -l -c 'gem install bundle archive-tar-minitar' && \
|
|
|
|
|
/bin/bash -l -c 'gem install bundler compass --no-doc --no-ri' && \
|
|
|
|
|
ln -s /usr/local/rvm/rubies/ruby-2.2.3/bin/ruby /usr/bin && \
|
|
|
|
|
rm -rf /usr/local/rvm/src
|
|
|
|
|
|
|
|
|
|
# Setting PostgreSQL
|
|
|
|
|
RUN sed -i 's/\(peer\|md5\)/trust/' /etc/postgresql/9.5/main/pg_hba.conf && \
|
|
|
|
|
RUN sed -i 's/\(peer\|md5\)/trust/' /etc/postgresql/10/main/pg_hba.conf && \
|
|
|
|
|
service postgresql start && \
|
|
|
|
|
createuser publicuser --no-createrole --no-createdb --no-superuser -U postgres && \
|
|
|
|
|
createuser tileuser --no-createrole --no-createdb --no-superuser -U postgres && \
|
|
|
|
@ -193,8 +163,9 @@ RUN git clone --recursive git://github.com/CartoDB/cartodb.git && \
|
|
|
|
|
cd - && \
|
|
|
|
|
npm install && \
|
|
|
|
|
rm -r /tmp/npm-* /root/.npm && \
|
|
|
|
|
perl -pi -e 's/gdal==1\.10\.0/gdal==1.11.3/' python_requirements.txt && \
|
|
|
|
|
perl -pi -e 's/gdal==1\.10\.0/gdal==2.2.2/' python_requirements.txt && \
|
|
|
|
|
pip install --no-binary :all: -r python_requirements.txt && \
|
|
|
|
|
gem install bundler bundle compass archive-tar-minitar && \
|
|
|
|
|
/bin/bash -l -c 'bundle install' && \
|
|
|
|
|
cp config/grunt_development.json ./config/grunt_true.json && \
|
|
|
|
|
/bin/bash -l -c 'bundle exec grunt' && \
|
|
|
|
@ -210,7 +181,7 @@ RUN git clone https://github.com/CartoDB/data-services.git && \
|
|
|
|
|
pip install -r requirements.txt && pip install . && \
|
|
|
|
|
cd ../../../../client && PGUSER=postgres make install
|
|
|
|
|
|
|
|
|
|
# Observertory extension
|
|
|
|
|
# Observatory extension
|
|
|
|
|
RUN cd / && git clone --recursive https://github.com/CartoDB/observatory-extension.git && \
|
|
|
|
|
cd observatory-extension && \
|
|
|
|
|
PGUSER=postgres make deploy
|
|
|
|
@ -233,6 +204,7 @@ ADD ./sync_tables_trigger.sh /cartodb/script/sync_tables_trigger.sh
|
|
|
|
|
ENV PATH /usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
|
|
|
RUN mkdir -p /cartodb/log && touch /cartodb/log/users_modifications && \
|
|
|
|
|
/opt/varnish/sbin/varnishd -a :6081 -T localhost:6082 -s malloc,256m -f /etc/varnish.vcl && \
|
|
|
|
|
perl -pi.bak -e 's/^bind 127.0.0.1 ::1$/bind 0.0.0.0/' /etc/redis/redis.conf && \
|
|
|
|
|
service postgresql start && service redis-server start && \
|
|
|
|
|
bash -l -c "cd /cartodb && bash script/create_dev_user && \
|
|
|
|
|
bash script/setup_organization.sh && bash script/geocoder.sh" && \
|
|
|
|
|