People know a lot about docker

I have a random question or two.

1 Like

Only a little. When I looked into it, it seemed unsuitable for my needs.

I use it recreationally. Almost exclusively via docker-compose

More than I’d really like to; the bare minimum I can get away with for running Discourse.

Much more than I did 36 hours ago. I did some training yesterday : )

Ask away! It sounds like someone will be able to help.

I know people who are trying to set up a mirror of this

But the instructions seem broken.

Or are we mad?

Well, you are considering using docker…

1 Like

Look. We’re trying to resurrect an urban dead clone from 15 years ago so we can fix one bug in it. That goes without saying

2 Likes

Look broken to me. There’s no heroku_8xb5fctf file in the repo, as far as I can tell.

1 Like

I figured out how to get it bootstrapped.

mkdir /opt/game/shintolin
cd /opt/game/shintonlin
mkdir mongodb

git clone https://github.com/troygoode/shintolin.git
cd /opt/game/shintolin/shintolin

sed -i -r -e 's/node:carbon/node:gallium/' -e '/- \.:\/host/a \ \ \ \ \ \ - ../mongodb:/data/db' docker-compose.yml
sed -i -r -e '/db.ensure_indexes cb/a \ \ \ \ \ \ cb()' bin/dev/bootstrap-production

docker-compose up -d

docker-compose run shintolin3 bash
# FROM INSIDE THE CONTAINER - THIS COMMAND REMOVES ALL DATABASE DATA, USE WITH CAUTION AFTER INITIAL SETUP
bin/dev/bootstrap-production shintolin.tsv

I have a copy running at shintolin.pillb0x.net

But I have no idea what this thing is or how to play.


EDIT: I also haven’t figured out exactly how to schedule the cron jobs

1 Like

Thank you! I’m one of the people who’ve been trying to get this working. When I enter “bin/dev/bootstrap-production shintolin.tsv” in the cmd line and in the cli for the container in docker compose I get ‘not found’ errors. Also what are the two sed lines doing?

The dev’s directions for scheduling the cron jobs are outdated. Heroku no longer supports MongoLab. The dev moved the game over to Mongo Atlas when that happened but didn’t update the readme.

5 Likes

The sed lines are there to change some files. You can use git diff to see the effective changes.

I did get cron jobs working but it required some more edits; I’ll post them in a little bit.

I’m not sure why you’d be getting errors when running the command. A screenshot may help shed some light on the matter.

2 Likes

Do you have a github repo with your changes?

https://imgur.com/gallery/DnFCJaP

Yeah, I can probably get them posted.

Looks like the issue is that you are getting a console into the mongo container, not the app one. The bootstrap process uses the app container to build the database from a script

1 Like

This is why I asked here. This already sounds like a sci fit novel.

4 Likes

A really bad one……

2 Likes

So it wouldn’t be the cli for either of these? They’re both tagged mongo while the top one ‘shintolin’ does not have the option of opening a cli window. Sorry for all the dumb questions, I don’t have any experience with Docker prior to this.

If you run the docker-compose file, you should get two containers: shintolin_shintolin3_1 and shintolin_shintolin3-mongo_1. I’m not sure how you are launching the docker-compose file, so I can’t give guidance on how to get both containers.

In my updated docker-compose file, I have a 3rd container that launches the clock.js task that runs all the cron jobs.

My modified files are here:

Be aware that for the Mongo DB, I’ve mapped the database data path in the container to a host folder so that the database can survive stack creation/deletion events. In this case, it’s a folder called mongodb in the parent folder for the git project root.

├── mongodb <------ database data path
└── shintolin
    ├── apps
    ├── bin
    ├── commands
    ├── data
    ├── node_modules
    ├── queries
    └── test
1 Like

I think the problem may be that I haven’t run the docker-compose.yml file then? I’d just been doing-

docker-compose up shintolin3-mongo
docker-compose run shintolin3-mongo bash

Then trying to run bootstrap-production.

1 Like

Yup. Those commands are not needed with my instructions since those are for restoring a mongo database, which we don’t have

1 Like