-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfilechromium.alpine
More file actions
83 lines (66 loc) · 3.12 KB
/
Dockerfilechromium.alpine
File metadata and controls
83 lines (66 loc) · 3.12 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
83
# FROM node:lts-alpine
# from alpine:3.17
# FROM continuumio/miniconda3:23.3.1-0-alpine
FROM mambaorg/micromamba:alpine3.19
USER root
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories && \
echo "http://dl-cdn.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories && \
echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories && \
apk --no-cache update && \
apk add --no-cache --virtual .build-deps gifsicle pngquant optipng libjpeg-turbo-utils udev ttf-opensans && \
apk add --no-cache nano python3 py3-pip alpine-sdk chromium-chromedriver chromium xvfb xvfb-run bash && \
apk add --no-cache musl-dev linux-headers g++ gcc python3-dev && \
rm -rf /var/cache/apk /root/.npm/
# Download and install updated nodejs
ENV NODE_PACKAGE_URL https://unofficial-builds.nodejs.org/download/release/v18.16.0/node-v18.16.0-linux-x64-musl.tar.gz
RUN apk add cmake build-base libstdc++ openssl openssl-dev
WORKDIR /opt
RUN wget $NODE_PACKAGE_URL
RUN mkdir -p /opt/nodejs
RUN tar -zxvf *.tar.gz --directory /opt/nodejs --strip-components=1
RUN rm *.tar.gz
RUN ln -s /opt/nodejs/bin/node /usr/local/bin/node
RUN ln -s /opt/nodejs/bin/npm /usr/local/bin/npm
RUN npm install -g npm@9.6.6
# fake chrome and force parameters
COPY bin/chromium-browser.sh /tmp/chromium-browser
RUN mv /usr/bin/chromium-browser /usr/bin/chromium-browser-original \
&& ln -sfv /tmp/chromium-browser /usr/bin/chromium-browser
RUN chmod +x /usr/bin/chromium-browser
RUN ln -sf /usr/bin/chromium-browser /usr/bin/google-chrome
# tagui hack's
RUN ln -sf /usr/bin/python3 /usr/bin/python
ENV OPENSSL_CONF=/dev/null
# tell puppeteer to skip installing chrome. We'll be using the installed package.
ENV PUPPETEER_SKIP_DOWNLOAD=true
RUN adduser -D -g 'OpenIAP user' -h /home/openiap openiapuser
RUN mkdir -p /home/openiap/.openiap/packages
# RUN chown -R openiapuser:root /home/openiap && chmod -R g+rwX /home/openiap
# RUN chown -R openiapuser:root /usr/local/lib/node_modules && chmod -R g+rwX /usr/local/lib/node_modules
RUN chown -R openiapuser:root /home/openiap && chmod -R 775 /home/openiap
RUN chown -R openiapuser:root /usr/local/lib && chmod -R 775 /usr/local/lib
USER openiapuser
WORKDIR /home/openiap
# Copy files with appropriate permissions
COPY --chown=openiapuser:root package.json /home/openiap/package.json
COPY --chown=openiapuser:root package-lock.json /home/openiap/package-lock.json
COPY --chown=openiapuser:root bin /home/openiap/bin
RUN npm install --omit=dev --verbose
# OpenShift hack
COPY --chown=openiapuser:root package.json /.npm/package.json
RUN chmod 777 /.npm
RUN rm -r /.npm/*
RUN chmod 777 /home/openiap/.npm
RUN rm -r /home/openiap/.npm/*
COPY --chown=openiapuser:root dist /home/openiap/dist
ENV HOME='/home/openiap'
ENV USER='openiapuser'
CMD ["node", "--require", "./dist/Logger.js", "dist/runagent.js"]
# WORKDIR /tmp
# COPY package.json /tmp/package.json
# COPY package-lock.json /tmp/package-lock.json
# COPY bin /tmp/bin
# RUN npm install
# COPY dist /tmp/dist
# # CMD ["npx", "-y", "@openiap/nodeagent", "-service"]
# CMD ["node", "--require", "./dist/Logger.js", "dist/runagent.js"]