Unable to deploy shiny app with shinyapps.io - shiny

Help please - what is the cause of this error?
Note: my application works well locally.
Preparing to deploy application...DONE
Uploading bundle for application: 2363487...Detecting system locale ... DONE
Deploying bundle: 3194815 for application: 2363487 ...
Waiting for task: 737583366
building: Parsing manifest
building: Building image: 3571613
building: Installing system dependencies
building: Fetching packages
building: Installing packages
building: Installing files
building: Pushing image: 3571613
deploying: Starting instances
rollforward: Activating new instances
unstaging: Stopping old instances
Application successfully deployed to https://khol-ben.shinyapps.io/mindshare/
Warning message:
Error detecting locale: Error in read.table(file = file, header = header, sep = sep, quote = quote, : incomplete final line found by readTableHeader on 'raw'
(Using default: en_US)

Related

Running docker build with bazel genrule and a dockerfile

I have a monorepo with multiple languages and artifacts and I want to transition to Bazel.
We want to build docker images using our existing Dockerfiles, using a genrule - to avoid translating all dockerfiles to docker-rules (at least at this point).
We know it's not Bazel's best practice, but we assumed it can allow us easy transition.
I'm testing with this Dockerfile
FROM alpine:3.8
ENTRYPOINT ["echo"]
CMD ["Hello Bazel!"]
I tried following this post, but when running the docker build command (even out of Bazel) I'm getting this -
> tar -czh . | docker build -t hello-bazel -
[+] Building 0.1s (2/2) FINISHED
=> [internal] load remote build context 0.0s
=> ERROR copy /context / 0.1s
------
> copy /context /:
------
failed to solve with frontend dockerfile.v0: failed to read dockerfile: Error processing tar file(gzip: invalid header):
I tried using a genrule with the basic docker build command -
genrule(
name = "gc-hello-bazel",
srcs = ["Dockerfile"],
outs = ["imagesha.txt"],
cmd = "docker build -t hello-bazel -f $(location Dockerfile) . > $#",
tools = ["Dockerfile"],
)
But the build fails with
failed to solve with frontend dockerfile.v0: failed to read dockerfile: open Dockerfile: no such file or directory
in case it matters, this is my directory structure:
-WORKSPACE
-<some-root-dirctories>
-<a-root-directory>
-<subdir>
-<subsubdir1>
-my_docker
-Dockerfile
-BUILD.bazel
What am I doing wrong?
TL;DR: I'm looking for a working example of docker build with Dockerfile and Bazel's Genrule
This is not an exact answer to your question as it uses a rule rather than a genrule. But I think it should solve your underlying problem.
Under bazelbuild/rules_docker there is a (non-hermetic) rule for building docker images from a Dockerfile.
To use it you will need to add the following to your WORKSPACE file;
# file: //WORKSPACE
http_archive(
name = "io_bazel_rules_docker",
sha256 = "b1e80761a8a8243d03ebca8845e9cc1ba6c82ce7c5179ce2b295cd36f7e394bf",
urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.25.0/rules_docker-v0.25.0.tar.gz"],
)
Then in your build file you can add the following;
# file: BUILD.bazel
load("#io_bazel_rules_docker//contrib:dockerfile_build.bzl", "dockerfile_image")
dockerfile_image(
name = "my_non_hermetic_image",
dockerfile = ":Dockerfile",
)

Build C++ project with Bazel offline (without internet connection)

I try to build the Bazel C++ Build Tutorial from the Bazel homepage (Getting Started) with this command but without any connection to the internet: bazel build //main:hello-world
The Jenkins Server will not have any connection to the internet so I can't do prefetching or similar. Is there a way how to prepare my C++ project on another computer and transfer the dependencies to the Jenkins Server to do it offline? How? I would just need what I got from the following error message respectively get the tutorial running:
Extracting Bazel installation...
Starting local Bazel server and connecting to it...
INFO: Repository rules_cc instantiated at:
/DEFAULT.WORKSPACE.SUFFIX:267:6: in <toplevel>
C:/users/XXX/_bazel_XXX/dq2p42jq/external/bazel_tools/tools/build_defs/repo/utils.bzl:201:18: in maybe
Repository rule http_archive defined at:
C:/users/XXX/_bazel_XXX/dq2p42jq/external/bazel_tools/tools/build_defs/repo/http.bzl:336:31: in <toplevel>
WARNING: Download from https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip failed: class java.io.IOException Unable to tunnel through proxy. Proxy returns "HTTP/1.1 501 Not Implemented"
WARNING: Download from https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip failed: class java.io.IOException Unable to tunnel through proxy. Proxy returns "HTTP/1.1 501 Not Implemented"
ERROR: An error occurred during the fetch of repository 'rules_cc':
Traceback (most recent call last):
File "C:/users/XXX/_bazel_XXX/dq2p42jq/external/bazel_tools/tools/build_defs/repo/http.bzl", line 111, column 45, in _http_archive_impl
download_info = ctx.download_and_extract(
Error in download_and_extract: java.io.IOException: Error downloading [https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip, https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip] to C:/users/XXX/_bazel_XXX/dq2p42jq/external/rules_cc/temp1363696983472254851/b1c40e1de81913a3c40e5948f78719c28152486d.zip: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 501 Not Implemented"
ERROR: Error fetching repository: Traceback (most recent call last):
File "C:/users/XXX/_bazel_XXX/dq2p42jq/external/bazel_tools/tools/build_defs/repo/http.bzl", line 111, column 45, in _http_archive_impl
download_info = ctx.download_and_extract(
Error in download_and_extract: java.io.IOException: Error downloading [https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip, https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip] to C:/users/XXX/_bazel_XXX/dq2p42jq/external/rules_cc/temp1363696983472254851/b1c40e1de81913a3c40e5948f78719c28152486d.zip: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 501 Not Implemented"
ERROR: Skipping '//main:hello-world': no such package '#rules_cc//cc': java.io.IOException: Error downloading [https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip, https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip] to C:/users/XXX/_bazel_XXX/dq2p42jq/external/rules_cc/temp1363696983472254851/b1c40e1de81913a3c40e5948f78719c28152486d.zip: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 501 Not Implemented"
WARNING: Target pattern parsing failed.
ERROR: no such package '#rules_cc//cc': java.io.IOException: Error downloading [https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip, https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip] to C:/users/XXX/_bazel_XXX/dq2p42jq/external/rules_cc/temp1363696983472254851/b1c40e1de81913a3c40e5948f78719c28152486d.zip: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 501 Not Implemented"
INFO: Elapsed time: 30.974s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded)
currently loading: main
Update:
I tried prefetching and it doesn't work. What I did:
run bazel fetch //...
Copy the prefetched data from bazel info output_base directory from local to jenkins server (I had to recreate one sym link to the install dir).
I run bazel build --fetch=false //main:hello-world on jenkins without refatching. Now I get following error:
Loading:
Loading: 0 packages loaded
WARNING: /DEFAULT.WORKSPACE:1:17: External repository 'bazel_tools' is not up-to-date and fetching is disabled. To update, run the build without the '--nofetch' command line option.
ERROR: error loading package '': Every .bzl file must have a corresponding package, but '#bazel_tools//tools/build_defs/repo:http.bzl' does not have one. Please create a BUILD file in the same or any parent directory. Note that this BUILD file does not need to do anything except exist.
INFO: Elapsed time: 0.298s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded)
I found one solution for offline building a simple C++ projects with bazel.
First you have to download the rules_cc and rules_java libs, because these where the external dependent libs in the simple Bazel C++ tutorial project. I found no release for rules_cc so I downloaded the zip file from the url which was mentioned in the error message on the console when I was trying to use bazel build offline: https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip. The sha key was also mentioned in the error message when you try to use the lib locally with a wrong sha key (see below). The rules_java lib can be downloaded here: https://github.com/bazelbuild/rules_java/releases. The WORKSPACE specification is also mentioned there.
Then you have to add the following to your WORKSPACE file. Be aware, that you have to point to your local copy of the archive files for rules_cc and rules_java. And for rules_cc you have to mention in strip_prefix the root path of the archive file (the first and only root directory in the .zip file). The rules_java has no root directory:
load("#bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "rules_cc",
urls = ["file:C:/tmp/b1c40e1de81913a3c40e5948f78719c28152486d.zip"],
strip_prefix = "rules_cc-b1c40e1de81913a3c40e5948f78719c28152486d",
sha256 = "d0c573b94a6ef20ef6ff20154a23d0efcb409fb0e1ff0979cec318dfe42f0cdd",
)
http_archive(
name = "rules_java",
url = "file:C:/tmp/rules_java-4.0.0.tar.gz",
sha256 = "34b41ec683e67253043ab1a3d1e8b7c61e4e8edefbcad485381328c934d072fe",
)
You can run bazel fetch //... to fetch data locally on the machine, which has access to the internet. Then you can just copy prefetched data: from bazel info output_base directory on your local PC to bazel info output_base in the jenkins job.

Expo builds locally, won’t publish

I have my un-ejected expo app up and running and I've managed to build and run it successfully locally on both android and iOS without errors. However, when I try to publish the app I get the unable to resolve module error.
Here's the full error:
[exp] Failed building JavaScript bundle.
[exp] Unable to resolve module `BikeShare/theme/components` from `/Users/gdaunton/Projects/BikeShare/App.js`: Module does not exist in the module map
[exp]
[exp] This might be related to https://github.com/facebook/react-native/issues/4968
[exp] To resolve try the following:
[exp] 1. Clear watchman watches: `watchman watch-del-all`.
[exp] 2. Delete the `node_modules` folder: `rm -rf node_modules && npm install`.
[exp] 3. Reset packager cache: `rm -fr $TMPDIR/react-*` or `npm start -- --reset-cache`.
[exp] Packager URL http://localhost:19001/node_modules/expo/AppEntry.bundle?dev=false&minify=true&hot=false&assetPlugin=/Users/gdaunton/Projects/BikeShare/node_modules/expo/tools/hashAssetFiles&platform=ios returned unexpected code 500. Please open your project in the Expo app and see if there are any errors. Also scroll up and make sure there were no errors or warnings when opening your project.
Basically I have a a setup like this:
BikeShare
- static
- js
- theme
- components
- index.js
- App.js
and a .babelrc with:
["module-alias", [
{ "src": "./static/js", "expose": "BikeShare" }
]]
I found out that it was because I had aliases that branched off of my main alias (i.e. BikeShare/img). I had to switch all of those to be namespaced separately (just img/). I also switched to using module-resolver instead of module-alias since that was recommended in a few places.

Cannot setup Ionic monitoring with ionic cordova build --prod

I tried the following command to try add the monitoring feature of ionic to diagnose a problem in my app using ionic view.
$ ionic monitoring syncmaps
git rev-parse HEAD
√ Running command - done!
[INFO] No sourcemaps found, doing build...
? Do full prod build? (Y/n) y ?
Do full prod build? Yes
[INFO] Running app-scripts build: --prod
[22:16:31] build prod started ...
[22:16:31] clean started ...
[22:16:31] clean finished in 1 ms
[22:16:31] copy started ...
[22:16:31] ngc started ...
[22:16:37] ngc finished in 6.08 s
[22:16:37] preprocess started ...
[22:16:37] deeplinks started ...
[22:16:38] deeplinks finished in 441 ms
[22:16:38] optimization started ...
[22:16:38] copy finished in 6.63 s
Error: ./src/pages/admin/admin.ngfactory.js
Module not found: Error: Can't resolve '../../../angularfire2/auth' in >'C:\Users\Gavin\Desktop\Web Development\app\src\pages\admin'
resolve '../../../angularfire2/auth' in 'C:\Users\Gavin\Desktop\Web Development\app\src\pages\admin' using description file: C:\Users\Gavin\Desktop\Web Development\app\package.json (relative path: ./src/pages/admin)
Field 'browser' doesn't contain a valid alias configuration
This error keeps going down the page for a long time, I get the same error if I type
ionic cordova build --prod
I resolved it by deleting .ngmodules folder, downgrading my firebase version to npm i --save angularfire2#4.0.0-rc.1 , and then npm install. I was then able to build my app with ionic cordova --prod

Shiny deployment error

When I am trying to deploy my shiny app at shinyapps.io I get below error :
> deployApp()
Preparing to deploy application...DONE
Uploading bundle for application: 187055...DONE
Deploying bundle: 857060 for application: 187055 ...
Waiting for task: 416072120
building: Processing bundle: 857060
building: Parsing manifest
building: Building image: 849457
building: Installing system dependencies
################################ Begin Task Log ################################
[2017-06-07T17:28:40.200495546+0000] Execute script: packages/build/nloptr.sh
+ set -e
+ VERSION=2.4.2
+ cd /tmp
+ curl -O http://ab-initio.mit.edu/nlopt/nlopt-2.4.2.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0################################# End Task Log #################################
Error: Unhandled Exception: Child Task 416072122 failed: Error building image: Build exited with non-zero status: 56
Has anyone come across this error. Appreciate if someone help me on how to resolve this. I am using R version 3.4.0
Thanks,
It looks like your app require NLopt, but shinyapps.io failed to install the package. The package installation seemed to be some shell script which may not work in the shinyapps.io server(because of permission etc).
Basically the deployment process scan your file and environment, then try to duplicate the dependency packages in the server. If you used CRAN version the server will also install CRAN version, which should not need build from source or running some shell script. If you used github version server will also try to use github version or build from source, which could have more dependency requirement.
Another possibility is the R package is just the interface and you need to install the actual library, which failed to be installed in server.
R packages will often rely on operating system packages to be
installed on the server. If your application happens to use an R
package that requires a system library that is not installed by
default, please let us know by filing an issue, or a pull request, at
shinyapps-package-dependencies