-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
82 lines (61 loc) · 2.75 KB
/
Dockerfile
File metadata and controls
82 lines (61 loc) · 2.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
FROM cimg/android:2025.03.1-node
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.6.4111459" && \
echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.10.2.4988404"
# Setup LTS release
ENV NDK_LTS_VERSION "27.0.12077973"
ENV ANDROID_NDK_HOME "/home/circleci/android-sdk/ndk/${NDK_LTS_VERSION}"
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "ndk;${NDK_LTS_VERSION}"
# Setup build tools
ENV BUILD_TOOLS_VERSION "35.0.0"
RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;${BUILD_TOOLS_VERSION}"
ENV ANDROID_NDK_ROOT "${ANDROID_NDK_HOME}"
ENV PATH "${ANDROID_NDK_HOME}:${PATH}"
USER root
RUN groupadd --gid 1000 node \
&& useradd --uid 1000 --gid node --shell /bin/bash --create-home node \
&& echo 'node ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \
&& echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep
USER node
ENV HOME /home/node
ENV PATH /home/node/.local/bin:/home/node/bin:${PATH}
CMD ["/bin/sh"]
RUN sudo chown -R node:node /home/node
RUN sudo chown -R node:node /home/circleci
# Switching user can confuse Docker's idea of $HOME, so we set it explicitly
ENV HOME /home/node
RUN sudo npm install --unsafe-perm=true --allow-root -g cordova@12.0.0 @ionic/cli@6.20.3
RUN sudo apt-get update -qq && \
DEBIAN_FRONTEND=noninteractive sudo apt-get install -y -qq --no-install-recommends \
# for ruby-dev
build-essential\
git \
vim \
# for rbenv
libssl-dev libreadline-dev zlib1g-dev \
# for postgres
libpq-dev \
&& sudo apt-get clean \
&& sudo rm -rf /var/cache/apt/archives/* \
&& sudo rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
&& sudo truncate -s 0 /var/log/*log
ENV PATH="/home/node/.rbenv/bin:/home/node/.rbenv/shims:$PATH"
ENV NVM_DIR="$HOME/.nvm"
ENV NODE_VERSION="22.19.0"
RUN curl https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash \
&& source $NVM_DIR/nvm.sh \
&& nvm install $NODE_VERSION \
&& nvm alias default $NODE_VERSION \
&& nvm use default
ENV NODE_PATH="$NVM_DIR/v$NODE_VERSION/lib/node_modules"
ENV PATH="$NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH"
RUN sudo apt-get update && \
sudo apt-get install git curl libssl-dev libreadline-dev bison zlib1g-dev autoconf build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev && \
bash -c "curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash" && \
bash -c "rbenv install 3.3.5" && \
echo 'eval "$(rbenv init -)"' >> /home/node/.bashrc && \
bash -c "rbenv global 3.3.5" && \
bash -c "/home/node/.rbenv/shims/gem install bundler"
RUN sudo apt-get update && sudo apt-get install python3-pip
ENV JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"
RUN java -version && gradle -v && ruby -v && node -v && pip -V
WORKDIR /home/node