Code Monkey home page Code Monkey logo

Comments (31)

nytamin avatar nytamin commented on August 22, 2024 3

I recommend installing NodeJS using nvm (node version manager), as that makes it very easy to switch between versions.
https://github.com/creationix/nvm
Then to install NodeJS 8.11.0 just do nvm install 8.11.0

from sofie-core.

Julusian avatar Julusian commented on August 22, 2024 3

@SirFiChi We are working on getting some public docker images published for everything. It's just a little hard to be motivated to do so currently, as there is a piece that needs work to be usable. Without it, it is very hard to actually try out the system. But that is making progress, so hopefully we will have something soon

from sofie-core.

mint-dewit avatar mint-dewit commented on August 22, 2024 1

This is by no means a definitive guide, but should be the a basic way of getting things running.

  1. install meteor current ver 1.8
  2. install nodejs version 8 (LTS)
  3. install yarn (package manager, similar to npm) by running npm install --global yarn
  4. clone tv-automation-server-core
  5. cd into tv-automation-server-core/meteor
  6. run meteor npm install in the core directory
  7. run meteor.
  8. cd out of tv-automation-server-core
  9. clone tv-automation-playout-gateway
  10. cd into tv-automation-playout-gateway
  11. run yarn in playout gateway directory
  12. run yarn buildstart in playout gateway directory
  13. cd out of tv-automation-playout-gateway
  14. clone tv-automation-mos-gateway
  15. cd into tv-automation-mos-gateway
  16. run yarn in mos gateway directory
  17. run yarn buildstart in mos gateway directory

Note that although this gives you a full installation of all core components, you cannot do any actual playout yet. Apart from having a mos-enabled NCRS you also need some blueprints. Blueprints are what transforms the mos data into playout data (clips, graphics, etc.) and unfortunately we do not (yet) have any open source blueprints.

from sofie-core.

herzogmedia avatar herzogmedia commented on August 22, 2024 1
6\. "npm install --global yarn" brings error that "npm" wasn't found, so I will do "sudo apt-get install npm" first

You should not need to do this, as a successfull installation of nodejs automatically installs npm.
I would suggest to install nodejs like this:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

as it is suggested in their official documentation.
See here: https://github.com/nodesource/distributions/blob/master/README.md and here: https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions-enterprise-linux-fedora-and-snap-packages

from sofie-core.

jstarpl avatar jstarpl commented on August 22, 2024 1

Just to follow up on this:

"meteor" finally shows "=> App running at: http://localhost:3000/". Tested it in my clients browser --> GOTCHA!. Just got the message "check databaseVersion: Version mismatch (minor version differ): core version: 0.19.0, database version: 0.0.0 (to fix, run migration)"

This means your core system is up and running and you should leave it running. All the other components connect to it and will fail if they can't find it. To clarify: migrations are Sofie's way of converting configurations between versions, so that you don't need to reconfigure the entire system each time you install a new version. Version 0.0.0 just means 'a clean system without configuration'. If you go into Settings -> Upgrade database you will be able to run all the migrations, thus resulting in a theoretically functioning system.

I also have to figure out what "Apart from having a mos-enabled NCRS you also need some blueprints. Blueprints are what transforms the mos data into playout data (clips, graphics, etc.) and unfortunately we do not (yet) have any open source blueprints." means.
Is there a list of programs that can be used for that?

An NRCS (Newsroom Computer System) is a general term for a software suite that manages workflows within a newsroom. Sofie specifically integrates with broadcast-oriented NRCSes. Most of them support an industry-standard protocol called MOS that allows communication between various pieces of equipment within a news broadcast studio. There is a number of various NRCSes, most notably AP ENPS, Avid iNEWS, Octopus, Autocue QNews. We test Sofie against ENPS, but since we use the MOS protocol, integrating with other NRCSes is just a matter of configuration.

Now, Blueprints is a Sofie-specific term for a JavaScript app that runs within Sofie and transforms data coming from the NRCS into usable Rundowns. Blueprints allow installation-specific customizations that are relevant for a given installation or production. They are essentially a "Theme" for the broadcast, like "Themes" in, say, WordPress - and just as (if not more) powerful.

from sofie-core.

SirFiChi avatar SirFiChi commented on August 22, 2024 1

@Julusian That 1-command-to-run-everything-thing would make me sending you a beer. (;
I wrote with @baltedewit weeks ago about the MOS-protocol and I had the idea to use a opensource cms (like drupal) for that. (balte also should get beer from me, and as I told you, I#m not into programming and/or understanding the MOS Protocol so I just can find someone in the drupal community that eventually will write the module or library...

Short discription of my plan:
I will start a web-tv-broadcast-station (german language) about opensource (https://os-television.de/).
Footage --> SofieTV --> YouTube/Twitch (embed in the website)
And hopefully there will be a way to hook up the playout for Livestreams directly from OpenSource-Events...

from sofie-core.

nytamin avatar nytamin commented on August 22, 2024 1

We have now updated the documentation with a Getting Started guide (https://sofie.gitbook.io/sofie-tv-automation/documentation/getting-started)
and there is also an installation guide for Sofie Core (https://sofie.gitbook.io/sofie-tv-automation/documentation/installation/installing-sofie-server-core).

Feel free to open an issue if there's anything missing in the docs! :)

from sofie-core.

SirFiChi avatar SirFiChi commented on August 22, 2024

I reinstall the server and will give feedback.

from sofie-core.

SirFiChi avatar SirFiChi commented on August 22, 2024

Here are my steps:

  1. Installing Ubuntu Server 18.04 LTS on a Server (options are Software-RAID vg0 and sshd)

  2. After reboot: apt-get update && apt-get upgrade

  3. optional ifconfig and connecting via ssh for remote configuration (and better documentation in this issue)

  4. Installed Meteor ("curl https://install.meteor.com/ | sh" as standard user)

  5. "sudo apt-get install nodejs" installs nodejs 8.10.0

  6. "npm install --global yarn" brings error that "npm" wasn't found, so I will do "sudo apt-get install npm" first

  7. "npm install --global yarn" brings permission error, so I changed it to "sudo npm install --global yarn" with success

  8. "git clone -b master https://github.com/nrkno/tv-automation-server-core.git"

  9. "cd tv-automation-server-core/meteor"

  10. "meteor npm install" work now, and just had three "errors". "found 3 vulnerabilities (1 low, 2 high)". "Npm audit" doesn't work.
    =========================

  11. "meteor" starts some actions. That's a lot more success as my last installation attempts.

  12. "meteor" finally shows "=> App running at: http://localhost:3000/". Tested it in my clients browser --> GOTCHA!. Just got the message "check databaseVersion: Version mismatch (minor version differ): core version: 0.19.0, database version: 0.0.0 (to fix, run migration)"

  13. stopped the server with ctrl-c for the rest of the installation

  14. "cd ../.."

  15. "git clone -b master https://github.com/nrkno/tv-automation-playout-gateway.git"

  16. "cd tv-automation-playout-gateway"

  17. "yarn"

  18. "yarn buildstart"

  19. "cd .."

  20. "git clone -b master https://github.com/nrkno/tv-automation-mos-gateway.git"

  21. "cd tv-automation-mos-gateway"

  22. "yarn"

  23. "yarn buildstart"
    ===========
    After that I saw that "yarn buildstart" is shutting down in both of the attempts (mos-gateway and playout-gateway) because the server was down.
    So I started again with:

  24. "cd .." to tv-automation-server-core

  25. "cd meteor"

  26. "meteor &"

  27. "cd ../tv-automation-playout-gateway"

  28. "yarn buildstart &"

  29. "cd ../tv-automation-playout-gateway"

  30. "yarn buildstart &"
    ==================
    Sofie-Server Website actually brings:
    status: FAIL / FATAL
    Status messages:

    check databaseVersion: Version mismatch (minor version differ): core version: 0.19.0, database version: 0.0.0 (to fix, run migration)
    Playout gateway: MediaScanner not connected
    MOS gateway: Shutting down

But thats okay for now, and just takes an hour, with reinstallation of the server.

I also have to figure out what "Apart from having a mos-enabled NCRS you also need some blueprints. Blueprints are what transforms the mos data into playout data (clips, graphics, etc.) and unfortunately we do not (yet) have any open source blueprints." means.
Is there a list of programs that can be used for that?

Thanks a lot for the help! Three days of failed trying vs. one hour with a running server. I love opensource!

from sofie-core.

SirFiChi avatar SirFiChi commented on August 22, 2024

Thanks for the feedback.
In my case there wasn't the bin bin for npm. But I'm the one of the million users with a non funtional installation. (;

6\. "npm install --global yarn" brings error that "npm" wasn't found, so I will do "sudo apt-get install npm" first

You should not need to do this, as a successfull installation of nodejs automatically installs npm.

I will try this the next time:

I would suggest to install nodejs like this:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

from sofie-core.

hummelstrand avatar hummelstrand commented on August 22, 2024

I will shortly add this information as the beginning of the Installation section of the documentation. If there are any updates you'd like to suggest, please comment below.

from sofie-core.

hummelstrand avatar hummelstrand commented on August 22, 2024

Current Installation documentation: https://sofie.gitbook.io/sofie-tv-automation/documentation/installation

from sofie-core.

bevand10 avatar bevand10 commented on August 22, 2024

Hi.

Attempting to build using the supplied Dockerfile: docker build -t sofie/server-core .

Have completed this step successfully for the mos-gateway repo, but this repo appears to be failing to build.

  1. Had to remove -- from line 13 to get docker build to run. I'm unsure of the consequences, but see 3?

  2. Observed the following notable err: npm WARN lifecycle [email protected]~postinstall: cannot run in wd [email protected] meteor npm run prepareForTest (wd=/opt/core/meteor). Again, not sure if it's relevant.

  3. Related to 1, this, following by a "hang"...

Step 9/15 : RUN mount=type=cache,target=/opt/core/meteor/.meteor/local meteor build --allow-superuser --directory /opt/
 ---> Running in 0305a1046c4e

Even with METEOR_ALLOW_SUPERUSER or --allow-superuser, permissions in your app
directory will be incorrect if you ever attempt to perform any Meteor tasks as
a normal user. If you need to fix your permissions, run the following command
from the root of your project:

  sudo chown -Rh <username> .meteor/local


Even with METEOR_ALLOW_SUPERUSER or --allow-superuser, permissions in your app
directory will be incorrect if you ever attempt to perform any Meteor tasks as
a normal user. If you need to fix your permissions, run the following command
from the root of your project:

  sudo chown -Rh <username> .meteor/local

Any quick ideas?
I'm thinking of building a simpler Dockerfile to reflect the current build instructions - is that a better approach rather than using this one?

--d.

from sofie-core.

SirFiChi avatar SirFiChi commented on August 22, 2024

Hahahaha. Made my Day.
I actually tried to build a Docker-File too, but I'm hanging at
"RUN yarn buildstart". So I decided to post here, and the site refreshed with bevand10's comment... ^^
So, let me read it...

from sofie-core.

SirFiChi avatar SirFiChi commented on August 22, 2024

My "Dockerfile" looks like:


FROM ubuntu

RUN apt-get update && apt-get upgrade -y
RUN apt-get install apt-utils -y
RUN apt-get install curl sudo git -y
RUN curl https://install.meteor.com/ | sh
RUN curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
RUN apt-get install -y nodejs
RUN npm install --global yarn
RUN git clone -b master https://github.com/nrkno/tv-automation-server-core.git
RUN cd tv-automation-server-core/meteor
RUN meteor npm install
RUN cd ../..
RUN git clone -b master https://github.com/nrkno/tv-automation-playout-gateway.git
RUN cd tv-automation-playout-gateway
RUN yarn
RUN yarn buildstart
RUN cd ..
RUN git clone -b master https://github.com/nrkno/tv-automation-mos-gateway.git
RUN cd tv-automation-mos-gateway
RUN yarn
RUN yarn buildstart
RUN cd ..
RUN cd meteor
RUN meteor &
RUN cd ../tv-automation-playout-gateway
RUN yarn buildstart &

And I'm hanging at the first "RUN yarn buildstart".

from sofie-core.

bevand10 avatar bevand10 commented on August 22, 2024

I had to add a few params to make Docker work behind my corporate proxy: --build-arg http_proxy=http://my_proxy:80/ --build-arg https_proxy=http://my_proxy:80/. Not sure if that's an issue for you?

In order to make that work completely, I also have to add the following sysd config:

$cat /etc/systemd/system/docker.service.d/http_proxy.conf 
[Service]
Environment="http_proxy=http://my_proxy:80"
Environment="HTTP_PROXY=http://my_proxy:80"
Environment="https_proxy=http://my_proxy:80"
Environment="HTTPS_PROXY=http://my_proxy:80"
Environment="ftp_proxy=http://my_proxy:80"
Environment="FTP_PROXY=http://my_proxy:80"
Environment="no_proxy=.local.bbc.co.uk,127.0.0.1"
Environment="NO_PROXY=.local.bbc.co.uk,127.0.0.1"

from sofie-core.

Julusian avatar Julusian commented on August 22, 2024

Hi @bevand10
The --mount on line 13 is an experimental docker feature, which allows a local cache to be injected for use by that step (to speed up builds after the first). The change you have done will likely simply cause it to not be able to cache, and shouldnt cause any wider issues.

Im not sure what that warning is about, it sounds a bit vague.

Perhaps it is simply taking a long time to run? when we first enabled circleci builds, it ended up taking over 15 mins to run that one step there.

The steps followed by circleci to produce a docker image may be better to follow, have you given that a try?

from sofie-core.

Julusian avatar Julusian commented on August 22, 2024

@SirFiChi
There are a couple of issues with what you are trying to do.
Firstly, you are trying to run 4 seperate processes inside a single docker container, which is really against the recommended way of using docker, especially as if this had worked then if one of them crashed the only way to restart it will be to restart everything. (If you really want to go that route then look into supervisord, but it would be better to have them all as seperate containers).
Hanging at yarn buildstart is expected as it is a shortcut for yarn build && yarn start. That needs to be yarn build instead, as the yarn start needs to be done in the CMD/ENTRYPOINT part of the dockerfile.

from sofie-core.

bevand10 avatar bevand10 commented on August 22, 2024

Hi @bevand10
The --mount on line 13 is an experimental docker feature, which allows a local cache to be injected for use by that step (to speed up builds after the first). The change you have done will likely simply cause it to not be able to cache, and shouldnt cause any wider issues.

Im not sure what that warning is about, it sounds a bit vague.

Perhaps it is simply taking a long time to run? when we first enabled circleci builds, it ended up taking over 15 mins to run that one step there.

The steps followed by circleci to produce a docker image may be better to follow, have you given that a try?

Just trying the steps defined in .circlecl/config.yml - one by one!

From https://forums.meteor.com/t/build-command-slow-and-quiet-how-to-get-verbose-output/20922/2, now running RUN cd meteor && METEOR_PROFILE=100 METEOR_DEBUG_BUILD=1 meteor build --allow-superuser --directory . which is showing progress rather than nothing (which is much more friendly!).

@Julusian Oops - boom:

     DONE 2 linking took 2229
     START 2 minifying app code
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: 
<--- Last few GCs --->

[6:0x2b1b7f0]   323199 ms: Mark-sweep 1345.4 (1432.9) -> 1345.4 (1432.9) MB, 1201.7 / 0.0 ms  allocation failure GC in old space requested
[6:0x2b1b7f0]   324520 ms: Mark-sweep 1345.4 (1432.9) -> 1345.4 (1431.9) MB, 1201.0 / 0.0 ms  last resort GC in old space requested
[6:0x2b1b7f0]   325840 ms: Mark-sweep 1345.4 (1431.9) -> 1345.4 (1431.9) MB, 1319.9 / 0.0 ms  last resort GC in old space requested


<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 0x1f283c1a5879 <JSObject>
    1: OutputStream(aka OutputStream) [0xdb6a1a822d1 <undefined>:~5547] [pc=0x2223bb58b617](this=0xdb6a1a822d1 <undefined>,options=0xdb6a1a822d1 <undefined>)
    2: print_to_string [0xdb6a1a822d1 <undefined>:~6184] [pc=0x2223bb598f01](this=0x2ef616d7cb09 <AST_SymbolRef map = 0x2580a08eea49>,options=0xdb6a1a822d1 <undefined>)
    3: arguments adaptor frame: 0->1
    4: before [0xdb6a1a822d1 <unde...

node::Abort() [/root/.meteor/packages/meteor-tool/.1.6.1_4.1cqwdx3.of2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node]
 2: 0x8c21ec [/root/.meteor/packages/meteor-tool/.1.6.1_4.1cqwdx3.of2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node]
 3: v8::Utils::ReportOOMFailure(char const*, bool) [/root/.meteor/packages/meteor-tool/.1.6.1_4.1cqwdx3.of2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node]
 4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [/root/.meteor/packages/meteor-tool/.1.6.1_4.1cqwdx3.of2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node]
 5: v8::internal::Factory::NewTransitionArray(int) [/root/.meteor/packages/meteor-tool/.1.6.1_4.1cqwdx3.of2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node]
 6: v8::internal::TransitionsAccessor::Insert(v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal::Map>, v8::internal::SimpleTransitionFlag) [/root/.meteor/packages/meteor-tool/.1.6.1_4.1cqwdx3.of2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node]
 7: v8::internal::Map::ConnectTransition(v8::internal::Handle<v8::internal::Map>, v8::internal::Handle<v8::internal::Map>, v8::internal::Handle<v8::internal::Name>, v8::internal::SimpleTransitionFlag) [/root/.meteor/packages/meteor-tool/.1.6.1_4.1cqwdx3.of2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node]
 8: v8::internal::Map::CopyReplaceDescriptors(v8::internal::Handle<v8::internal::Map>, v8::internal::Handle<v8::internal::DescriptorArray>, v8::internal::Handle<v8::internal::LayoutDescriptor>, v8::internal::TransitionFlag, v8::internal::MaybeHandle<v8::internal::Name>, char const*, v8::internal::SimpleTransitionFlag) [/root/.meteor/packages/meteor-tool/.1.6.1_4.1cqwdx3.of2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node]
 9: v8::internal::Map::CopyAddDescriptor(v8::internal::Handle<v8::internal::Map>, v8::internal::Descriptor*, v8::internal::TransitionFlag) [/root/.meteor/packages/meteor-tool/.1.6.1_4.1cqwdx3.of2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node]
10: v8::internal::Map::CopyWithField(v8::internal::Handle<v8::internal::Map>, v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal::FieldType>, v8::internal::PropertyAttributes, v8::internal::PropertyConstness, v8::internal::Representation, v8::internal::TransitionFlag) [/root/.meteor/packages/meteor-tool/.1.6.1_4.1cqwdx3.of2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node]
11: v8::internal::Map::TransitionToDataProperty(v8::internal::Handle<v8::internal::Map>, v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal::Object>, v8::internal::PropertyAttributes, v8::internal::PropertyConstness, v8::internal::Object::StoreFromKeyed, bool*) [/root/.meteor/packages/meteor-tool/.1.6.1_4.1cqwdx3.of2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node]
12: v8::internal::LookupIterator::PrepareTransitionToDataProperty(v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::Object>, v8::internal::PropertyAttributes, v8::internal::Object::StoreFromKeyed) [/root/.meteor/packages/meteor-tool/.1.6.1_4.1cqwdx3.of2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node]
13: v8::internal::StoreIC::LookupForWrite(v8::internal::LookupIterator*, v8::internal::Handle<v8::internal::Object>, v8::internal::Object::StoreFromKeyed) [/root/.meteor/packages/meteor-tool/.1.6.1_4.1cqwdx3.of2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node]
14: v8::internal::StoreIC::UpdateCaches(v8::internal::LookupIterator*, v8::internal::Handle<v8::internal::Object>, v8::internal::Object::StoreFromKeyed, v8::internal::MaybeHandle<v8::internal::Object>) [/root/.meteor/packages/meteor-tool/.1.6.1_4.1cqwdx3.of2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node]
15: v8::internal::StoreIC::Store(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal::Object>, v8::internal::Object::StoreFromKeyed) [/root/.meteor/packages/meteor-tool/.1.6.1_4.1cqwdx3.of2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node]
16: v8::internal::KeyedStoreIC::Store(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>) [/root/.meteor/packages/meteor-tool/.1.6.1_4.1cqwdx3.of2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node]
17: v8::internal::Runtime_KeyedStoreIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*) [/root/.meteor/packages/meteor-tool/.1.6.1_4.1cqwdx3.of2++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node]
18: 0x2223bb1042fd
Aborted (core dumped)
The command '/bin/sh -c cd meteor && METEOR_PROFILE=100 METEOR_DEBUG_BUILD=1 meteor build --allow-superuser --directory .' returned a non-zero code: 134

Will try without the debug envs as the VM has 12 cores & 12GB RAM.
Was running a clone of the CI Dockerfile, with this active so far:

$ cat Dockerfile2 
# syntax=docker/dockerfile:experimental
# BUILD IMAGE
FROM node:8.11.4
RUN curl https://install.meteor.com/ | sh
WORKDIR /opt/server-core
COPY meteor meteor
RUN cd meteor && meteor npm install
RUN cd meteor && METEOR_PROFILE=100 METEOR_DEBUG_BUILD=1 meteor build --allow-superuser --directory .

from sofie-core.

Julusian avatar Julusian commented on August 22, 2024

Just trying the steps defined in .circlecl/config.yml - one by one!

It should be basically the same steps as the installation guide or all in one docker file, just optimised for a different build environemnt.

from sofie-core.

SirFiChi avatar SirFiChi commented on August 22, 2024

@Julusian It's the first time I used Docker and the first Container I tryed to create.

After all, we are a little offtopic in this issue.
And it would be really great to have all needed components as Docker Containers.
Let me know if I can help, anyhow. I the best job I can do is to test, because I'm a noob... ^^

from sofie-core.

bevand10 avatar bevand10 commented on August 22, 2024

@SirFiChi

To build the MOS server component, git pull it locally, then

cd tv-automation-mos-gateway
docker build -t sofie/tv-automation-mos-gateway:latest .

from sofie-core.

SirFiChi avatar SirFiChi commented on August 22, 2024

@Julusian Is this a stupid idea, or is there an option nrkno starts a git-repro for the "SofieTV-Docker-Container"?

from sofie-core.

bevand10 avatar bevand10 commented on August 22, 2024

Hi @Julusian

Ok. The following tweak enabled a successful Dockerfile build, after following the advice at https://groups.google.com/forum/#!topic/meteor-talk/C5oVNqm16MY:

$ diff Dockerfile.orig Dockerfile
13c13,14
< RUN --mount=type=cache,target=/opt/core/meteor/.meteor/local meteor build --allow-superuser --directory /opt/
---
> #RUN --mount=type=cache,target=/opt/core/meteor/.meteor/local meteor build --allow-superuser --directory /opt/
> RUN mount=type=cache,target=/opt/core/meteor/.meteor/local NODE_OPTIONS="--max-old-space-size=8192" METEOR_DEBUG_BUILD=1 meteor build --allow-superuser --directory /opt/

Regarding the --mount option, it's showing as an invalid flag:

$ docker build --build-arg http_proxy=http://my_proxy:80 --build-arg https_proxy=http://my_proxy:80 -t sofie/tv-automation-server-core:2019-06-10-12.05.15 .
Sending build context to Docker daemon  27.32MB
Error response from daemon: Dockerfile parse error line 14: Unknown flag: mount
sofie@zgbwcpqapp01:~/build/tv-automation-server-core$ docker version
Client:
 Version:           18.09.6
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        481bc77
 Built:             Sat May  4 02:35:27 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.6
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       481bc77
  Built:            Sat May  4 01:59:36 2019
  OS/Arch:          linux/amd64
  Experimental:     false

Seems like --mount is a bleeding-edge feature: moby/moby#32507 (comment)

Build elapsed is around 6mins 10seconds. Much hampered of course by appearing to only use a single core during the the many node compile phases.

from sofie-core.

Julusian avatar Julusian commented on August 22, 2024

@SirFiChi I don't think we will be looking to do that. Our aim is to push images from each repository to dockerhub. Trying to combine them will not work very well, as there are options for which ingest gateway is used (spreadsheet vs mos vs custom). I will write a docker-compose file once this is done, which should make it be 1 command to run everything.

@bevand10 Yes, I believe that is correct about --mount. Im not too sure on details of it as this was setup by someone else, but I am told that this really helps with build times.
Ooh, we have been seeing some failures like that ourselves. I shall have to give that option a try for us. The METEOR_DEBUG_BUILD variable also looks like a good idea to set.

from sofie-core.

sallest avatar sallest commented on August 22, 2024

I tried to do step by step of installing sofie core, but when I do the command: meteor run, show me message below:
I miss something?

root@sofie-bau:/sofie/tv-automation-server-core/meteor# meteor run --allow-superuser

Even with METEOR_ALLOW_SUPERUSER or --allow-superuser, permissions in your app directory will be incorrect if you ever attempt to perform any Meteor tasks as a normal user. If you need to fix your permissions, run the following command from the root of your project:

sudo chown -Rh .meteor/local

[[[[[ /sofie/tv-automation-server-core/meteor ]]]]]

=> Started proxy.
=> Started MongoDB.
W20210317-13:04:14.110(0)? (STDERR) /root/.meteor/packages/meteor-tool/.2.1.0.yuair9.drob++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:280
W20210317-13:04:14.199(0)? (STDERR) throw(ex);
W20210317-13:04:14.200(0)? (STDERR) ^
W20210317-13:04:14.200(0)? (STDERR)
W20210317-13:04:14.200(0)? (STDERR) Error: Cannot find module '/sofie/tv-automation-server-core/meteor/node_modules/@sofie-automation/blueprints-integration/dist/index.js'. Please verify that the package.json has a valid "main" entry
W20210317-13:04:14.200(0)? (STDERR) at tryPackage (internal/modules/cjs/loader.js:295:19)
W20210317-13:04:14.200(0)? (STDERR) at Function.Module._findPath (internal/modules/cjs/loader.js:508:18)
W20210317-13:04:14.201(0)? (STDERR) at Function.Module._resolveFilename (internal/modules/cjs/loader.js:802:27)
W20210317-13:04:14.201(0)? (STDERR) at Function.resolve (internal/modules/cjs/helpers.js:80:19)
W20210317-13:04:14.201(0)? (STDERR) at Object.require (/sofie/tv-automation-server-core/meteor/.meteor/local/build/programs/server/boot.js:286:34)
W20210317-13:04:14.201(0)? (STDERR) at makeInstallerOptions.fallback (packages/modules-runtime.js:618:18)
W20210317-13:04:14.202(0)? (STDERR) at Module.require (packages/modules-runtime.js:244:14)
W20210317-13:04:14.202(0)? (STDERR) at Module.moduleLink [as link] (/root/.meteor/packages/modules/.0.16.0.1d4exh9.zo59++os+web.browser+web.browser.legacy+web.cordova/npm/node_modules/reify/lib/runtime/index.js:52:22)
W20210317-13:04:14.202(0)? (STDERR) at module (lib/lib.ts:1:39)
W20210317-13:04:14.202(0)? (STDERR) at fileEvaluate (packages/modules-runtime.js:336:7)
W20210317-13:04:14.202(0)? (STDERR) at Module.require (packages/modules-runtime.js:238:14)
W20210317-13:04:14.202(0)? (STDERR) at Module.moduleLink [as link] (/root/.meteor/packages/modules/.0.16.0.1d4exh9.zo59++os+web.browser+web.browser.legacy+web.cordova/npm/node_modules/reify/lib/runtime/index.js:52:22)
W20210317-13:04:14.203(0)? (STDERR) at module (lib/collections/AdLibPieces.ts:3:44)
W20210317-13:04:14.203(0)? (STDERR) at fileEvaluate (packages/modules-runtime.js:336:7)
W20210317-13:04:14.203(0)? (STDERR) at Module.require (packages/modules-runtime.js:238:14)
W20210317-13:04:14.203(0)? (STDERR) at Module.moduleLink [as link] (/root/.meteor/packages/modules/.0.16.0.1d4exh9.zo59++os+web.browser+web.browser.legacy+web.cordova/npm/node_modules/reify/lib/runtime/index.js:52:22) {
W20210317-13:04:14.203(0)? (STDERR) code: 'MODULE_NOT_FOUND',
W20210317-13:04:14.204(0)? (STDERR) path: '/sofie/tv-automation-server-core/meteor/node_modules/@sofie-automation/blueprints-integration/package.json',
W20210317-13:04:14.204(0)? (STDERR) requestPath: '@sofie-automation/blueprints-integration'
W20210317-13:04:14.204(0)? (STDERR) }
=> Exited with code: 1
=> Your application is crashing. Waiting for file change.

from sofie-core.

eol-account avatar eol-account commented on August 22, 2024

I don't think we would recommend running a development version of Sofie as root. However, this issue is not related to that, you will need to go into the packages directory and run yarn build first, then you can run meteor in the meteor directory.

from sofie-core.

nytamin avatar nytamin commented on August 22, 2024

I'd also like to add that the easiest way to start up the development version (it'll handle all installation and build needed prior to start) is to simply run

cd meteor/
npm start

from sofie-core.

sallest avatar sallest commented on August 22, 2024

Sorry, I newbie at all

I will make all again, has no space left in vm, will give more space.

Thanks!

from sofie-core.

sallest avatar sallest commented on August 22, 2024

I did all again with the step by step below:

ubuntu 18.04 LTS
curl https://install.meteor.com/ | sh
meteor create ~/sofie

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
apt-get install -y nodejs

sudo apt install aptitude
sudo aptitude install npm

sudo npm install --global yarn

cd ~/sofie/
git clone -b master https://github.com/nrkno/tv-automation-server-core.git

cd tv-automation-server-core/meteor

meteor npm install

meteor run

Soo, get the same error, after, I did yarn build in packages and try meteor run again, now it running!!

info@sofiebau:~/sofie/tv-automation-server-core/meteor$ meteor run
[[[[[ ~/sofie/tv-automation-server-core/meteor ]]]]]

=> Started proxy.
=> Meteor 2.1 is available. Update this project with 'meteor update'.
=> Started MongoDB.
I20210318-12:18:26.162(0)? [info] System time: Updating, using ntp-server "0.se.pool.ntp.org"...
I20210318-12:18:26.189(0)? process started
I20210318-12:18:26.190(0)? [info] Core starting up
I20210318-12:18:26.190(0)? [info] Core system version: "1.18.0-0-in-testing-R30"
I20210318-12:18:26.190(0)? [warn] Enable garbage-collection by passing --expose_gc to node in prod or set SERVER_NODE_OPTIONS=--expose_gc in dev
I20210318-12:18:26.190(0)? [info] Core package mos-connection version: "0.9.0"
I20210318-12:18:26.190(0)? [info] Core package superfly-timeline version: "8.2.0"
I20210318-12:18:26.190(0)? [info] Core package core version: "1.18.0"
I20210318-12:18:26.191(0)? [info] Core package timeline-state-resolver-types version: "5.5.5"
I20210318-12:18:26.216(0)? [info] Migration: Starting
I20210318-12:18:26.223(0)? [info] Migration: Chunk: core, system, from 0.0.0 to 1.18.0-0-in-testing-R30
I20210318-12:18:26.224(0)? [info] Migration: 1 automatic and 0 manual steps (2 ignored).
I20210318-12:18:26.224(0)? [debug] undefined
I20210318-12:18:26.224(0)? [info] Running migration step "studio exists"
I20210318-12:18:26.225(0)? [info] Migration: Add default studio
I20210318-12:18:26.256(0)? [info] Migration: Automatically continuing with next batch..
I20210318-12:18:26.404(0)? [info] Migration: Starting
I20210318-12:18:26.540(0)? [warn] Migration: When running next chunk: Error: Migration manualInput lengths differ from expected: "0", "6" [500]
I20210318-12:18:26.541(0)? [info] Migration: End
I20210318-12:18:26.550(0)? [info] APM agent inactive
W20210318-12:18:26.550(0)? (STDERR) meteor-elastic-apm is not active
I20210318-12:18:27.149(0)? Security check: Verifying methods...
I20210318-12:18:27.470(0)? [debug] syncFunction: 3s8qMLO_Bs_5PZkYji2tzXtYatM_ (timelineTriggerTime$0,$1 - timelineTriggerTime)
I20210318-12:18:27.558(0)? [debug] getMediaWorkFlowRevisions
I20210318-12:18:27.560(0)? [debug] getMediaWorkFlowStepRevisions
I20210318-12:18:27.573(0)? [error] triggerWriteAccess [200]
I20210318-12:18:27.574(0)? [debug] syncFunction: ingest_rundown_undefined (prepareRundownPlaylistForBroadcast)
I20210318-12:18:27.577(0)? [debug] syncFunction: ingest_rundown_undefined (resetRundownPlaylist)
I20210318-12:18:27.579(0)? [debug] syncFunction: ingest_rundown_undefined (resetAndActivateRundownPlaylist)
I20210318-12:18:27.582(0)? [debug] syncFunction: ingest_rundown_undefined (deactivateRundownPlaylist)
I20210318-12:18:27.585(0)? [debug] syncFunction: ingest_rundown_undefined (takeNextPartInner)
I20210318-12:18:27.589(0)? [debug] syncFunction: ingest_rundown_undefined (setNextSegment)
I20210318-12:18:27.609(0)? [debug] syncFunction: YepKkGZRoxKOHgJlRucLEwq27k (userActionsTake$0 - take)
I20210318-12:18:27.622(0)? [debug] syncFunction: ingest_rundown_undefined (deactivateRundownPlaylist)
I20210318-12:18:27.665(0)? Security check: ok!
I20210318-12:18:28.287(0)? [debug] Updating hash:
=> Started your app.

=> App running at: http://localhost:3000/

Thanks, I will try make something with Inews>sofie>caspar.

from sofie-core.

sallest avatar sallest commented on August 22, 2024

After core up , playout up, and when I try up mos, got that error:

info@sofiebau:~/sofie/tv-automation-mos-gateway$ yarn buildstart
yarn run v1.22.10
$ yarn build && yarn start
$ trash dist && yarn build:main
$ tsc -p tsconfig.build.json
$ node dist/index.js
process started
Logging to Console
{"level":"info","message":"------------------------------------------------------------------"}
{"level":"info","message":"-----------------------------------"}
{"level":"info","message":"Statup options:"}
{"level":"info","message":"host: "127.0.0.1""}
{"level":"info","message":"port: 3000"}
{"level":"info","message":"log: """}
{"level":"info","message":"id: """}
{"level":"info","message":"token: """}
{"level":"info","message":"debug: false"}
{"level":"info","message":"certificates: []"}
{"level":"info","message":"disableWatchdog: false"}
{"level":"info","message":"unsafeSSL: false"}
{"level":"info","message":"-----------------------------------"}
{"level":"info","message":"Core: 127.0.0.1:3000"}
{"level":"info","message":"------------------------------------------------------------------"}
{"level":"info","message":"Initializing Process..."}
{"level":"info","message":"Process initialized"}
{"level":"info","message":"Initializing Core..."}
{"level":"info","message":"Core Connected!"}
{"level":"info","message":"Core: Setting up subscriptions for 5D2EJC48EH83932A3.."}
{"level":"info","message":"Initializing Mos..."}
{"level":"info","message":"Initializing MosConnection..."}
{"level":"error","message":"Error during initialization: Error: mosId missing in settings!\n at MosHandler._initMosConnection (/home/info/sofie/tv-automation-mos-gateway/dist/mosHandler.js:135:19)\n at /home/info/sofie/tv-automation-mos-gateway/dist/mosHandler.js:38:25\n at processTicksAndRejections (internal/process/task_queues.js:97:5) Error: mosId missing in settings!\n at MosHandler._initMosConnection (/home/info/sofie/tv-automation-mos-gateway/dist/mosHandler.js:135:19)\n at /home/info/sofie/tv-automation-mos-gateway/dist/mosHandler.js:38:25\n at processTicksAndRejections (internal/process/task_queues.js:97:5)"}
{"level":"info","message":"Shutting down in 10 seconds!"}
{"level":"info","message":"Core Disconnected!"}
Done in 14.71s.

image

Whant I do wrong? :/

from sofie-core.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.