Reputation: 157
I am trying to install meteor on node:10-alpine3.9 But I am getting an error. Please, what I am missing? Thanks.
I want to install meteor 1.8.1 and I based on staeke/meteor-alpine
Dockerfile
FROM node:10-alpine3.9
ENV METEOR_VERSION=1.8.1
ENV METEOR_ALLOW_SUPERUSER=1
RUN adduser -D -u 1001 -h /home/meteor meteor
RUN apk add --update --no-cache bash
RUN export TEMP_PACKAGES="alpine-sdk libc6-compat python linux-headers" && \
apk add --update --no-cache $TEMP_PACKAGES && \
su - meteor -c "curl https://install.meteor.com/?release=${METEOR_VERSION} | sh" && \
cd /home/meteor/.meteor/packages/meteor-tool/*/mt-os.linux.x86_64 && \
cp scripts/admin/launch-meteor /usr/bin/meteor && \
cd dev_bundle && \
cd bin && \
rm node && \
rm npm && \
rm npx && \
ln -s $(which node) && \
ln -s $(which npm) && \
ln -s $(which npx) && \
cd ../mongodb/bin && \
rm mongo mongod && \
cd ../../lib && \
sed -i '/sysctl\.h/d' node_modules/netroute/src/netroute.cc && \
npm rebuild && \
cd ~ && \
ln -s /home/meteor/.meteor && \
apk del $TEMP_PACKAGES
WORKDIR /home/meteor
ERROR after sudo docker build -t jds-base:1.0.0 . Well, this is not the only error because after there are some others (so long)
Downloading Meteor distribution
Meteor 1.8.1 has been installed in your home directory (~/.meteor).
Writing a launcher script to /usr/local/bin/meteor for your convenience.
This may prompt for your password.
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
sudo: no tty present and no askpass program specified
Couldn't write the launcher script. Please either:
(1) Run the following as root:
cp "/home/meteor/.meteor/packages/meteor-tool/1.8.1/mt-os.linux.x86_64/scripts/admin/launch-meteor" /usr/bin/meteor
(2) Add "$HOME/.meteor" to your path, or
(3) Rerun this command to try again.
Then to get started, take a look at 'meteor --help' or see the docs at
docs.meteor.com.
> [email protected] install /home/meteor/.meteor/packages/meteor-tool/.1.8.1.ani1yi.p0f9s++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/fibers
> node build.js || nodejs build.js
`linux-x64-64-musl` exists; testing
Binary is fine; exiting
> [email protected] install /home/meteor/.meteor/packages/meteor-tool/.1.8.1.ani1yi.p0f9s++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/kexec
> node-gyp rebuild
make: Entering directory '/home/meteor/.meteor/packages/meteor-tool/.1.8.1.ani1yi.p0f9s++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/kexec/build'
CXX(target) Release/obj.target/kexec/src/kexec.o
Upvotes: 1
Views: 1319
Reputation: 59946
You can try with below Docker image, it will able to install metro but you would not able to run, as seems like there is an github issue that describes that alpine does not support properly metero, the issue is marked as feature request.
FROM node:10-alpine3.9
ENV METEOR_VERSION=0.9.1
ENV METEOR_ALLOW_SUPERUSER=1
RUN apk add --update --no-cache bash curl build-base
RUN curl https://install.meteor.com/ | /bin/sh
RUN /usr/local/bin/meteor --version
But if not supported in alpine, there is no need to make things complex, you can run node slim. if your concern is size then there is no big difference if alpine fails to fulfill the requirement.
FROM node:10-buster-slim
ENV METEOR_VERSION=1.8.1
ENV LC_ALL=POSIX
ENV METEOR_ALLOW_SUPERUSER=1
RUN apt-get -yqq update \
&& DEBIAN_FRONTEND=noninteractive apt-get -yqq install \
curl \
g++ \
make \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN curl "https://install.meteor.com/?release=${METEOR_VERSION}" | /bin/sh
ENV PATH=$PATH:/root/.meteor
WORKDIR /app
EXPOSE 3000
ENTRYPOINT ["meteor"]
Output:
$ docker run -it --entrypoint bash --rm meteor -c "meteor --version"
Even with METEOR_ALLOW_SUPERUSER or --allow-superuser, permissions in your app directory will be incorrect if you ever attempt to perform any Meteor tasks as a normal user. If you need to fix your permissions,
run the following command from the root of your project:
sudo chown -Rh <username> .meteor/local
Meteor 1.8.1
Upvotes: 2