armhf-docker-library / mongo

MIT License
1 stars 0 forks source link

Find out how to build on armhf #1

Open webwurst opened 8 years ago

webwurst commented 8 years ago

I tried for some time, didn't get this to work. The only working version is from a prebuild deb from Debian.

:'-(

ubergesundheit commented 8 years ago

what about http://andyfelong.com/2015/12/mongodb-3-0-7-on-raspberry-pi-2/ ?

I will try this later..

webwurst commented 8 years ago

Ok, cool!

ubergesundheit commented 8 years ago

Here is what I have so far: But it fails with

In file included from <command-line>:0:0:
/usr/include/stdc-predef.h:59:1: fatal error: js-config.h: No such file or directory
 #endif
 ^
compilation terminated.
scons: *** [build/opt/mongo/scripting/mozjs/base.o] Error 1
FROM armhf/buildpack-deps:jessie-scm

# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
RUN groupadd -r mongodb && useradd -r -g mongodb mongodb

# for wheezy-backports
RUN gpg --keyserver pgpkeys.mit.edu --recv-key  8B48AD6246925553 && gpg -a --export 8B48AD6246925553 | apt-key add -

# use wheezy-backports for scons > 2.3

RUN echo "deb http://http.debian.net/debian wheezy-backports main" > /etc/apt/sources.list.d/wheezy-backports.list \
  && apt-get update \
    && apt-get -t wheezy-backports install -y --no-install-recommends \
               build-essential scons libboost-filesystem-dev libboost-program-options-dev libboost-system-dev libboost-thread-dev \
#                build-essential libssl-dev git scons libboost-filesystem-dev libboost-program-options-dev libboost-system-dev libboost-thread-dev \
#       ca-certificates curl \
#       numactl \
    && rm -rf /var/lib/apt/lists/*

# grab gosu for easy step-down from root
RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4
RUN curl -o /usr/local/bin/gosu -SL "https://github.com/tianon/gosu/releases/download/1.6/gosu-$(dpkg --print-architecture)" \
    && curl -o /usr/local/bin/gosu.asc -SL "https://github.com/tianon/gosu/releases/download/1.6/gosu-$(dpkg --print-architecture).asc" \
    && gpg --verify /usr/local/bin/gosu.asc \
    && rm /usr/local/bin/gosu.asc \
    && chmod +x /usr/local/bin/gosu

ENV MONGO_VERSION 3.2.1

RUN git clone --branch r$MONGO_VERSION --depth 1 https://github.com/mongodb/mongo.git 

#RUN curl -o /mongo/src/third_party/SConscript https://gist.githubusercontent.com/kitsook/f0f53bc7acc468b6e94c/raw/93ebc8dc0adf7afb0a38c1b6bf702f8a8c6b70c2/SConscript

RUN cd /mongo/src/third_party/mozjs-38 && ./get_sources.sh 
RUN cd /mongo/src/third_party/mozjs-38 && SHELL=/bin/bash ./gen-config.sh armv7l linux

RUN cd /mongo && scons -j 4 --wiredtiger=off --disable-warnings-as-errors core
seterrychen commented 8 years ago

The root cause of js-config.h: No such file or directory is seem that mozjs doesn't support arm platform (but arm64 does). If someone want to build under arm, you need to patch this and don't use the get-config.sh armv7l linux to generate config.

I try to build with Arch Linux patch, it successfully done. This may be helpful to someone.

The-Judge commented 6 years ago

@seterrychen : Link is broken :'(

LaloHao commented 6 years ago

There is a package on archlinuxarm https://archlinuxarm.org/packages/aarch64/mongodb

You can check the PKGBUILD for the commands used to build it https://archlinuxarm.org/packages/aarch64/mongodb/files/PKGBUILD

The-Judge commented 6 years ago

Great , thank you!