Skip to content

Getting async error #2

@frob

Description

@frob

I have canvas up and running and I am trying to add the RCE. Everything in canvas is working (seemingly) fine, but when I attempt to use RCE linking features I am getting this error in my browsers js console.

Failed to load http://rce.docker:3001/api/wikiPages?contextType=course&contextId=1: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://canvas.docker:3000' is therefore not allowed access. The response had HTTP status code 502. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

I don't think this is a cors issue because I am getting this output form the RCE log.

canvas-rce_1  | App 39 output: [89892936-4cbb-4ad9-8169-787a675c1279] 127.0.0.1 - - [02/Oct/2018:21:06:43 +0000] "OPTIONS /api/wikiPages?contextType=course&contextId=1 HTTP/1.1" 204 - "http://canvas.docker:3000/courses/1/assignments/1/edit" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"
canvas-rce_1  | 172.23.0.1 - - [02/Oct/2018:21:06:43 +0000] "OPTIONS /api/wikiPages?contextType=course&contextId=1 HTTP/1.1" 204 0 "http://canvas.docker:3000/courses/1/assignments/1/edit" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"
canvas-rce_1  | App 39 output: (node:39) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'link' of undefined
canvas-rce_1  | App 39 output:     at parseBookmark (/usr/src/app/app/api/canvasProxy.js:32:35)
canvas-rce_1  | App 39 output:     at <anonymous>
canvas-rce_1  | App 39 output:     at process._tickCallback (internal/process/next_tick.js:188:7)
canvas-rce_1  | App 39 output: (node:39) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 6)

I probably have something misconfigured somewhere as I am just starting to get this settup, but I cannot determine from the above error what the missconfiguration is.

I am running the latest (as of 2nd Oct, 2018) RCE docker image. I am running everything locally with the intent of eventually running this in production. My docker-compose.yml is as follows.

version: '3'

services:
  # TODO use a custom redis based image that is a bit more hardedned.
  redis:
    image: redis:4.0-alpine
  # TODO use a custom postgres image that is a bit more hardened.
  db:
    image: postgres:9.5-alpine
    volumes:
      - ./tmp/db:/var/lib/postgresql/data
    # configure database access based on environment variables
    environment:
      - POSTGRES_USER=canvas
      - POSTGRES_PASSWORD=your_password
      - POSTGRES_DB=canvas,canvas_development,canvas_production,canvas_test

  canvas-lms: &LMS
    build:
      context: ./dockerfiles/canvas-lms
    command: bundle exec rails s -p 3000 -b '0.0.0.0'

    # which port should be accessible from the outside?
    ports:
      - "3000:3000"

    # start container once `db` service is up
    depends_on:
      - db
      - redis

    # `db` and `node` should be able to communicate
    links:
      - db
      - redis
      - canvas-rce

  # Delayed jobs
  jobs:
    <<: *LMS
    command: bundle exec script/delayed_job run
    links:
      - db
      - redis

    ports: []

  canvas-rce:
    image: instructure/canvas-rce-api:latest
    environment:
      - ECOSYSTEM_KEY
      - ECOSYSTEM_SECRET
      - FLICKR_API_KEY
      - YOUTUBE_API_KEY

    expose:
     - "80"

    ports:
      - "3001:80"

My canvas-lms dockerfile is simple enough, it sets up a production environment according to the prod documentation and copies in some custom configuration files. While it isn't based on the canvas-lms official docker image is accomplishes much the same thing.

I am running chrome, macos 10.13.6, Docker CE stable Version 18.06.1-ce-mac73 (26764)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions