-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathDockerfile
56 lines (46 loc) · 1.75 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
FROM public.ecr.aws/lts/ubuntu:focal
ARG appium_version=1.21.0
ARG node_version=14.x
LABEL maintainer "Frederik Carlier <[email protected]>"
EXPOSE 4723
ENV DEBIAN_FRONTEND=noninteractive
# Don't install the ChromeDriver, which is used for Android automation.
ENV APPIUM_SKIP_CHROMEDRIVER_INSTALL=1
# Setting NODE_ENV=production should make sure npm does not install development
# dependencies.
ENV NODE_ENV=production
# Install xcuitrunner.
ARG xcuitrunner_version=2.10.3
WORKDIR /appium
## Install wget (required to install nodejs).
RUN apt-get update \
&& apt-get install -y --no-install-recommends wget ca-certificates \
## Install node.js
&& wget -nv https://deb.nodesource.com/setup_$node_version -O setup-nodejs \
&& /bin/bash setup-nodejs \
&& rm setup-nodejs \
&& apt-get install -y nodejs \
## Install Appium
&& npm install -g appium@${appium_version} --unsafe-perm=true --allow-root \
## Install xcuitrunner dependencies
&& apt-get install -y --no-install-recommends libusbmuxd-tools libturbojpeg libvncserver1 libicu66 libgssapi-krb5-2 libgdiplus \
## Install xcuitrunner
&& architecture=$(uname -m) \
&& case "$architecture" in \
x86_64) \
architecture=x64 \
;; \
aarch64) \
architecture=arm64 \
;; \
esac \
&& wget -nv http://cdn.quamotion.mobi/download/xcuitrunner.${xcuitrunner_version}.linux-${architecture}.deb -O xcuitrunner.${xcuitrunner_version}.linux-${architecture}.deb \
&& dpkg -i xcuitrunner.${xcuitrunner_version}.linux-${architecture}.deb \
&& rm xcuitrunner.${xcuitrunner_version}.linux-${architecture}.deb \
## Cleanup
&& apt-get remove -y wget gnupg \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY start.sh .
ENV PATH="/usr/share/xcuitrunner:${PATH}"
CMD [ "/bin/sh", "./start.sh" ]