FROM alpine:3.20.2 # In case of any build errors try to use 'FROM --platform=linux/amd64 ...' ENV DEBIAN_FRONTEND=noninteractive \ DEVICE_UDID='' \ DEVICE_BUS=/dev/bus/usb/003/011 \ POLLING_SEC=5 \ # Debug mode vars DEBUG=false \ DEBUG_TIMEOUT=3600 \ VERBOSE=false \ # Logger LOGGER_LEVEL=INFO \ # iOS envs WDA_HOST=localhost \ WDA_PORT=8100 \ MJPEG_PORT=8101 \ WDA_WAIT_TIMEOUT=30 \ WDA_LOG_FILE=/tmp/log/wda.log \ WDA_BUNDLEID=com.facebook.WebDriverAgentRunner.xctrunner \ TEST_RUNNER_BUNDLE_ID='' \ XCTEST_CONFIG='' \ WDA_FILE=/tmp/zebrunner/WebDriverAgent.ipa \ # Usbmuxd settings "host:port" USBMUXD_SOCKET_ADDRESS='' \ USBMUXD_PORT=2222 WORKDIR /root RUN mkdir /tmp/log/ ;\ mkdir /tmp/zebrunner/ ;\ # busybox-extras include (unzip, wget, iputils-ping (ping), nc) packages apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing \ bash nano jq curl socat libc6-compat busybox-extras libimobiledevice-glue libusb libimobiledevice net-tools ;\ # apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing usbmuxd ;\ # Grab go-ios from github and extract it in a folder # https://github.com/danielpaulus/go-ios/releases/latest/download/go-ios-linux.zip wget https://github.com/danielpaulus/go-ios/releases/download/v1.0.143/go-ios-linux.zip &&\ unzip go-ios-linux.zip -d /usr/local/bin &&\ rm -f go-ios-linux.zip &&\ ios --version COPY usbmuxd /usr/local/bin COPY go-ncm /usr/local/bin COPY logger.sh /opt COPY debug.sh /opt COPY entrypoint.sh / ENTRYPOINT ["/entrypoint.sh"] HEALTHCHECK --interval=20s --timeout=5s --start-period=120s --start-interval=10s --retries=3 \ CMD curl -Is "http://${WDA_HOST}:${WDA_PORT}/status" | head -1 | grep -q '200 OK' || exit 1