docker - Ionic docker 无法打开浏览器

标签 docker ionic-framework hybrid-mobile-app

我将 ionic 与 docker 一起使用,当我尝试执行在浏览器上执行应用程序的命令 ionic serve 时,出现此错误:

root@00209e483f93:/var/www/espaceproold# ionic serve
[INFO] Starting app-scripts server: --port 8100 --p 8100 --livereload-port 35729 --r 35729 --address 0.0.0.0 - Ctrl+C to
       cancel

[13:54:41]  watch started ...
[13:54:41]  build dev started ...
[13:54:41]  clean started ...
[13:54:41]  clean finished in 7 ms
[13:54:41]  copy started ...
[13:54:41]  transpile started ...
[13:54:45]  transpile finished in 3.50 s
[13:54:45]  preprocess started ...
[13:54:45]  deeplinks started ...
[13:54:45]  deeplinks finished in 47 ms
[13:54:45]  preprocess finished in 49 ms
[13:54:45]  webpack started ...
[13:54:45]  copy finished in 4.10 s
[13:54:55]  webpack finished in 10.18 s
[13:54:55]  sass started ...
[13:54:57]  sass finished in 1.55 s
[13:54:57]  postprocess started ...
[13:54:57]  postprocess finished in 18 ms
[13:54:57]  lint started ...
[13:54:57]  build dev finished in 15.37 s
[13:54:57]  watch ready in 15.48 s
[13:54:57]  dev server running: http://localhost:8100/

[13:54:57]  Failed to open the browser: Command failed: xdg-open "http://localhost:8100" /bin/sh: 1: xdg-open: not found
[13:55:00]  lint finished in 3.41 s

docker 文件:

FROM ubuntu:16.04
MAINTAINER ""
# Install apt packages
RUN apt-get update && apt-get install -y git lib32stdc++6 lib32z1 curl openjdk-8-jdk-headless sendemail libio-socket-ssl-perl libnet-ssleay-perl && apt-get clean && rm -rf /var/lib/apt/lists/*
# Install android SDK, tools and platforms 
RUN cd /opt && curl https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz -o android-sdk.tgz && tar xzf android-sdk.tgz && rm android-sdk.tgz
ENV ANDROID_HOME /opt/android-sdk-linux
RUN echo 'y' | /opt/android-sdk-linux/tools/android update sdk -u -a -t platform-tools,build-tools-23.0.3,android-23,extra-android-support,extra-google-m2repository,extra-android-m2repository
# accept the license agreements of the SDK components
RUN export ANDROID_LICENSES="$ANDROID_HOME/licenses" && \
    [ -d $ANDROID_LICENSES ] || mkdir $ANDROID_LICENSES && \
    [ -f $ANDROID_LICENSES/android-sdk-license ] || echo 8933bad161af4178b1185d1a37fbf41ea5269c55 > $ANDROID_LICENSES/android-sdk-license && \
    [ -f $ANDROID_LICENSES/android-sdk-preview-license ] || echo 84831b9409646a918e30573bab4c9c91346d8abd > $ANDROID_LICENSES/android-sdk-preview-license && \
    [ -f $ANDROID_LICENSES/intel-android-extra-license ] || echo d975f751698a77b662f1254ddbeed3901e976f5a > $ANDROID_LICENSES/intel-android-extra-license && \
    unset ANDROID_LICENSES
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
RUN apt-get install -y -q \
    nodejs \
    gradle \
    && apt-get -y autoclean \
    && rm -rf /var/lib/apt/lists/*
# Install npm packages
RUN npm install -g ionic
RUN npm install -g cordova
# Setup environment
ENV ANDROID_HOME /opt/android-sdk-linux
ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
EXPOSE 8100 35729

我的 dockerfile 有什么问题吗?或者是什么问题? 提前致谢!

最佳答案

来自 ionic documentation ,您应该使用此选项运行 ionic:

--nobrowser,-b    |    Disable launching a browser

这将阻止 ionic serve 尝试启动浏览器来显示您的网站。

此外,您当然不希望在生产环境中启用live-reload。你可以使用 --nolivereload 然后。如果您处于开发模式,可以保持 live-reload

关于docker - Ionic docker 无法打开浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44951241/

相关文章:

angular - 如何监视构造函数中调用的方法?

javascript - 无法使用其索引号在 ion-slides 中显示指定的幻灯片

nginx - Docker 网络 - nginx : [emerg] host not found in upstream

javascript - 至少努力从 Ionic 迁移到 NativeScript

bash - 如何重新启动所有 docker 容器并在每次重新启动之间暂停?

javascript - $state.go 引导我到 other 语句并且没有转换到正确的状态

javascript - 所有第三方 javascript SDK 都可以与 NativeScript 配合使用吗?

Cordova Hook 顺序

docker - 是否可以在同一台机器上启动多个 docker 守护进程

.net - GKE 中的 dotnet 应用程序与 nginx 入口 Controller 和代理