-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
/
Copy pathDockerfile
71 lines (63 loc) · 2.77 KB
/
Dockerfile
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
# Metrics docker image
FROM alpine:3.18
RUN apk upgrade --no-cache --available
# Install sudo
RUN apk add --update --no-cache sudo \
&& echo 'metrics ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/metrics
# Install licensed
RUN apk add --no-cache ruby \
&& apk add --no-cache --virtual .licensed ruby-dev make cmake g++ heimdal-dev \
&& gem install licensed \
&& apk del .licensed \
&& licensed --version
# Install chromium
ENV CHROME_BIN /usr/bin/chromium-browser
ENV CHROME_PATH /usr/lib/chromium/
ENV CHROME_EXTRA_FLAGS "--no-sandbox --disable-setuid-sandbox --disable-dev-shm-usage"
RUN apk add --no-cache chromium ttf-freefont font-noto-emoji \
&& apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community font-wqy-zenhei \
&& chromium --version
# Install docker
RUN apk add --update --no-cache docker-cli \
&& addgroup docker \
&& docker --version
# Install deno
ENV DENO_INSTALL /
ENV DENO_NO_UPDATE_CHECK true
ENV DENO_VERSION 1.38.3
ENV GLIBC_VERSION 2.34-r0
RUN apk add --no-cache --virtual .deno curl wget unzip \
&& wget --no-hsts --quiet --output-document /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \
&& wget --no-hsts --quiet https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk \
&& wget --no-hsts --quiet https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-bin-${GLIBC_VERSION}.apk \
&& wget --no-hsts --quiet https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-i18n-${GLIBC_VERSION}.apk \
&& mv /etc/nsswitch.conf /etc/nsswitch.conf.bak \
&& apk add --no-cache --force-overwrite glibc-${GLIBC_VERSION}.apk glibc-bin-${GLIBC_VERSION}.apk glibc-i18n-${GLIBC_VERSION}.apk \
&& mv /etc/nsswitch.conf.bak /etc/nsswitch.conf \
&& (/usr/glibc-compat/bin/localedef --force --inputfile POSIX --charmap UTF-8 "$LANG" || true) \
&& (echo "export LANG=$LANG" > /etc/profile.d/locale.sh) \
&& rm /etc/apk/keys/sgerrand.rsa.pub glibc-${GLIBC_VERSION}.apk glibc-bin-${GLIBC_VERSION}.apk glibc-i18n-${GLIBC_VERSION}.apk \
&& apk del glibc-i18n \
&& (curl -fsSL https://deno.land/x/install/install.sh | sh) \
&& apk del .deno \
&& deno upgrade --version ${DENO_VERSION} \
&& deno --version
# Install lighthouse
RUN apk add --no-cache npm \
&& npm install --global lighthouse \
&& lighthouse --version
# General configuration
RUN apk add --no-cache git \
&& adduser --system metrics \
&& addgroup metrics docker
# Metrics
USER metrics
WORKDIR /metrics
ENV TZ Europe/Paris
ENV TMP /tmp
COPY source /metrics/source
COPY deno.jsonc /metrics/deno.jsonc
COPY LICENSE /metrics/LICENSE
RUN deno task make cache
RUN deno task make get:browser
ENTRYPOINT [ "deno", "task", "make", "run", "github-action" ]