docker - 如何使用 docker 在浏览器中运行颤振测试?
问题描述
Dockerfile:
FROM ubuntu:latest
# Prerequisites
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/London
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt update && apt install -y lcov curl wget git unzip xz-utils zip libglu1-mesa openjdk-8-jdk
# Install chrome
RUN apt update && apt install -y xvfb gnupg2
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb https://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
RUN apt update
ENV DEBIAN_FRONTEND=noninteractive
RUN apt install google-chrome-stable -y
RUN Xvfb :99 -screen 0 1024x768x16 -nolisten tcp -nolisten unix &
ENV DISPLAY :99
# Set up new user
RUN useradd -ms /bin/bash dev
USER dev
WORKDIR /home/dev
# Prepare Android directories and system variables
RUN mkdir -p Android/sdk
ENV ANDROID_SDK_ROOT /home/dev/Android/sdk
RUN mkdir -p .android && touch .android/repositories.cfg
# Set up Android SDK
RUN wget -O sdk-tools.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
RUN unzip sdk-tools.zip && rm sdk-tools.zip
RUN mv tools Android/sdk/tools
ENV PATH "$PATH:/home/dev/Android/sdk/tools/bin"
RUN yes | sdkmanager --licenses
RUN yes | sdkmanager "build-tools;29.0.2" "patcher;v4" "platform-tools" "platforms;android-29" "sources;android-29"
ENV PATH "$PATH:/home/dev/Android/sdk/platform-tools"
# Set up Flutter SDK
RUN git clone -b master https://github.com/flutter/flutter.git
ENV PATH "/home/dev/flutter/bin:${PATH}"
ENV no_proxy 127.0.0.1,localhost
RUN flutter config --android-sdk $ANDROID_SDK_ROOT
# Run basic check to download Dark SDK
RUN flutter channel stable
RUN flutter config --enable-web
RUN flutter upgrade
RUN flutter doctor --verbose
RUN flutter create app
WORKDIR /home/dev/app
RUN flutter test
# RUN flutter test --platform chrome
WORKDIR /home/dev
RUN rm -rf app
ENTRYPOINT /bin/bash
flutter doctor
打印:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.0.1, on Linux, locale en_US)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Chrome - develop for the web
[!] Android Studio (not installed)
[✓] Proxy Configuration
[✓] Connected device (1 available)
flutter test
运行良好:
00:02 +1: All tests passed!
flutter test --platform chrome -v
打印错误:Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
[ +17 ms] <- compile org-dartlang-app:///main.dart
00:00 +0: compiling /home/dev/app/test/widget_test.dart [+20923 ms] Serving tests at http://localhost:33545/static/index.html?managerUrl=ws%3A%2F%2Flocalhost%3A33545%2F0&debug=false
[ +44 ms] Using Google Chrome 89.0.4389.82
[ +96 ms] [CHROME]:[0311/150935.435550:ERROR:bus.cc(393)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or
directory
[ +1 ms] [CHROME]:
[ ] [CHROME]:DevTools listening on ws://127.0.0.1:43571/devtools/browser/1a79813e-09ca-4997-aa8e-32bebefe408e
02:28 +0: compiling /home/dev/app/test/widget_test.dart
如何使用 docker 在浏览器中运行颤振测试?
解决方案
推荐阅读
- java - @ApiModelProperty 大摇大摆的 HTML 报告
- javascript - 为什么我的回调不能正常工作?
- php - 调用未定义的方法 Laravel\Lumen\Routing\Router::pos()
- elk - 如何为数据集的多行条件检查配置 Logstash 过滤器
- python - python黑白图像检测
- c# - 电源事件的 UWP 后台任务触发器
- emacs - Emacs:访问格式为 path:line:column 的文件
- asp.net-identity - 如何在asp.net core web api中实现otp授权?
- javascript - 如何仅显示前 5 个最高百分比的饼图标签
- jsp - 如何获取表单对象?