*~
.DS_Store
+.bundle/config
.idea
.ruby-gemset
.ruby-version
libxslt1-dev \
locales \
postgresql-client \
- ruby3.0 \
- ruby3.0-dev \
+ ruby \
+ ruby-dev \
+ ruby-bundler \
software-properties-common \
tzdata \
unzip \
- && curl https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \
- && add-apt-repository -y -U https://deb.nodesource.com/node_18.x \
- && apt-get install --no-install-recommends -y \
nodejs \
+ npm \
&& npm install --global yarn \
+ # We can't use snap packages for firefox inside a container, so we need to get firefox+geckodriver elsewhere
&& add-apt-repository -y ppa:mozillateam/ppa \
&& echo "Package: *\nPin: release o=LP-PPA-mozillateam\nPin-Priority: 1001" > /etc/apt/preferences.d/mozilla-firefox \
&& apt-get install --no-install-recommends -y \
# Install Ruby packages
ADD Gemfile Gemfile.lock /app/
-RUN gem install bundler \
- && bundle install
+RUN bundle install
# Install NodeJS packages using yarn
ADD package.json yarn.lock /app/
```
sudo apt-get update
-sudo apt-get install ruby3.0 libruby3.0 ruby3.0-dev \
+sudo apt-get install ruby ruby-dev ruby-bundler \
libvips-dev libxml2-dev libxslt1-dev nodejs \
- build-essential git-core firefox-geckodriver \
+ build-essential git-core \
postgresql postgresql-contrib libpq-dev libsasl2-dev \
- libffi-dev libgd-dev libarchive-dev libbz2-dev yarnpkg
-sudo gem3.0 install bundler
+ libffi-dev libgd-dev libarchive-dev libbz2-dev npm
+sudo npm install --global yarn
```
### Alternative platforms
Vagrant.configure("2") do |config|
# use official ubuntu image for virtualbox
config.vm.provider "virtualbox" do |vb, override|
- override.vm.box = "ubuntu/focal64"
+ override.vm.box = "ubuntu/jammy64"
override.vm.synced_folder ".", "/srv/openstreetmap-website"
vb.customize ["modifyvm", :id, "--memory", "4096"]
vb.customize ["modifyvm", :id, "--cpus", "2"]
# use third party image and sshfs or NFS sharing for lxc
config.vm.provider "lxc" do |_, override|
- override.vm.box = "generic/ubuntu2004"
+ override.vm.box = "generic/ubuntu2204"
override.vm.synced_folder ".", "/srv/openstreetmap-website", :type => sharing_type
end
# use third party image and sshfs or NFS sharing for libvirt
config.vm.provider "libvirt" do |_, override|
- override.vm.box = "generic/ubuntu2004"
+ override.vm.box = "generic/ubuntu2204"
override.vm.synced_folder ".", "/srv/openstreetmap-website", :type => sharing_type
end
apt-get upgrade -y
# install packages as explained in INSTALL.md
-apt-get install -y ruby2.7 libruby2.7 ruby2.7-dev \
- libxml2-dev libxslt1-dev nodejs yarnpkg \
- build-essential git-core firefox-geckodriver \
+apt-get install -y ruby ruby-dev ruby-bundler \
+ libxml2-dev libxslt1-dev nodejs npm \
+ build-essential git-core \
postgresql postgresql-contrib libpq-dev libvips-dev \
libsasl2-dev libffi-dev libgd-dev libarchive-dev libbz2-dev
-gem2.7 install --version "~> 2.1.4" bundler
+npm install --global yarn
## install the bundle necessary for openstreetmap-website
pushd /srv/openstreetmap-website
db_user_exists=`sudo -u postgres psql postgres -tAc "select 1 from pg_roles where rolname='vagrant'"`
if [ "$db_user_exists" != "1" ]; then
sudo -u postgres createuser -s vagrant
- sudo -u vagrant createdb -E UTF-8 -O vagrant openstreetmap
- sudo -u vagrant createdb -E UTF-8 -O vagrant osm_test
fi
# set up sample configs
cp config/example.storage.yml config/storage.yml
fi
touch config/settings.local.yml
+# create the databases
+sudo -u vagrant bundle exec rails db:create
# migrate the database to the latest version
sudo -u vagrant bundle exec rails db:migrate
popd