{"id":20156204,"url":"https://github.com/openfun/learninglocker-docker","last_synced_at":"2026-03-16T13:03:44.513Z","repository":{"id":79716928,"uuid":"165819675","full_name":"openfun/learninglocker-docker","owner":"openfun","description":":warning: DEPRECATED :warning: 🎓 learning locker docker images","archived":false,"fork":false,"pushed_at":"2020-07-03T09:54:55.000Z","size":81,"stargazers_count":11,"open_issues_count":0,"forks_count":6,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-09T22:40:12.799Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openfun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-15T09:09:44.000Z","updated_at":"2023-06-23T14:31:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"f6753403-c02b-406c-aa74-b7f3e8fc74af","html_url":"https://github.com/openfun/learninglocker-docker","commit_stats":null,"previous_names":[],"tags_count":159,"template":false,"template_full_name":null,"purl":"pkg:github/openfun/learninglocker-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Flearninglocker-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Flearninglocker-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Flearninglocker-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Flearninglocker-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openfun","download_url":"https://codeload.github.com/openfun/learninglocker-docker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Flearninglocker-docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278425450,"owners_count":25984682,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T23:37:58.323Z","updated_at":"2025-10-05T07:41:00.026Z","avatar_url":"https://github.com/openfun.png","language":"Shell","readme":"# Learning locker docker images\n\nThis repository contains the `Dockerfile` to build images for:\n\n- [learning locker](https://github.com/LearningLocker/learninglocker), a LRS to\n  store and analyze xAPI statements.\n- [xapi-service](https://github.com/LearningLocker/xapi-service), a service\n  dedicated to xAPI requests.\n\nWe follow learning locker's versions, so images built from this repository will\nhave the same tags you can found in learning locker and xapi-service\nrepositories.\n\n## Building learning locker image\n\nTo build a learning locker image, you have to pick the right\n[tag](https://github.com/LearningLocker/learninglocker/tags) to use and then\nbuild it using the following docker command (here with the `v2.6.2` tag):\n\n```bash\n$ docker build -t fundocker/learninglocker:v2.6.2 --build-arg LL_VERSION=\"v2.6.2\" learninglocker/\n```\n\n## Building xapi-service image\n\nTo build the xapi-service image, you have to pick the right\n[tag](https://github.com/LearningLocker/xapi-service/tags) to use and then build\nit using the following docker command (here with the `v2.2.15` tag):\n\n```bash\n$ docker build -t fundocker/xapi-service:v2.2.15 --build-arg VERSION=\"v2.2.15\" xapi/\n```\n\n## How to use the CI\n\nThe CI configured in this repository will test if the image can be built\nsuccessfully for a particular release, but it also pushes images to docker hub\nwhen this repository is tagged\n\nHere are the steps to follow to publish a new image:\n\n- Edit the `.circleci/releases.sh` file and update the tag version corresponding\n  to the image you want to publish.\n- Commit your changes, submit a pull request and once merged into master you\n  will be able to tag a new version.\n\nTags must stick to the following patterns for the image release you want to\npublish:\n\n- `learninglocker-[RELEASE_TAG]` if you want to publish a new learning locker\n  image (_e.g._ `learninglocker-v2.6.2`),\n- `xapi-service-[RELEASE_TAG]` if you want to publish a new xapi-service image\n  (_e.g._ `xapi-service-v2.2.15`).\n\n### Using the release script\n\nIf you have more than one release to publish, we also provide the `bin/release`\nBash script to automate the whole releasing process.\n\n#### Requirements\n\nThe `bin/release` script requires to install the two following dependencies\non your system:\n\n- [curl](https://curl.haxx.se/)\n- [jq](https://stedolan.github.io/jq/)\n\nYou will find a packaged version of those tools on most \\*nix systems.\n\n#### Usage\n\nFirst step: query the public GitHub API to check available releases of the\n`LearningLocker` and `xapi-service` projects that have not been committed yet\nand create a version upgrade commit per release in a new branch. This can be\nachieved thanks to the `prepare` command:\n\n```\n$ bin/release prepare\n```\n\nCheck that missing releases have been committed in your current branch using the\n`git log` command.\n\nIf everything goes well, you can push you local branch to GitHub to open a new\npull request:\n\n```\n$ bin/release push\n```\n\n\u003e Note that we will not push the local branch at once, but commit per commit to\n\u003e run the CI on each commit and ensure that the build passes for all of them.\n\nOnce your pull request has been opened, reviewed and merged to `master`, you\nmust tag each commit with the appropriate release tag and push this tag to\nGitHub to trigger the final image build and publication to DockerHub:\n\n```\n$ bin/release tag\n```\n\nNow you just have to wait for the CI to do its job.\n\n_nota bene_: the `bin/release` script accepts a `-t` (`--token`) option to\nperform authenticated requests against GitHub's public API. This allows you to\nbypass the [60 requests per hour rate\nlimit](https://developer.github.com/v3/#rate-limiting). In this case, you will\nneed to generate a new personnal access token from [GitHub's\ninterface](https://github.com/settings/tokens) and use it as follows:\n\n```\n$ bin/release -t THETOKEN CMD\n```\n\n## Using the learning locker image\n\nYou have to configure your learning locker image using environment variables.\nYou will find all available variables in the [project\ndocumentation](http://docs.learninglocker.net/guides-configuring/#learning-locker-application).\n\nThere is no entrypoint nor command configured in this image. You will have to\ndeclare them explicitly when you run your container. A list of commands to use\n_per_ service follows:\n\nRunning the UI application:\n\n```\n$ docker run --rm fundocker/learninglocker:v2.6.2 node ui/dist/server\n```\n\nRunning the API application:\n\n```\n$ docker run --rm fundocker/learninglocker:v2.6.2 node api/dist/server\n```\n\nRunning the worker application:\n\n```\n$ docker run --rm fundocker/learninglocker:v2.6.2 node worker/dist/server\n```\n\nYou can also use the CLI by executing the following command from your container:\n\n```\n$ docker run --rm fundocker/learninglocker:v2.6.2 node cli/dist/server\n```\n\n### Using the xapi-service image\n\nYou have to configure your xapi-service image using environment variables. You\nwill find all available variables in the [project\ndocumentation](http://docs.learninglocker.net/guides-configuring/#xapi-service).\n\nBy default, the entrypoint from this image will run the `xapi-service`, so you\ndon't have to declare a command.\n\n### docker-compose example\n\nIn the `example` directory you will find a docker-compose configuration. This\nconfiguration is here as an example to help you to integrate Learning Locker in\nyour stack.\n\nYou can run it without modification in this directory, you can test it by\nconnecting to the interface with the url\n[http://localhost:8080](http://localhost:8080). You will also have to create a\n`site admin` by executing this command once your docker-compose is up and\nrunning:\n\n```\n$ docker-compose exec api node cli/dist/server createSiteAdmin [email] [organisation] [password]\n```\n\nYou will probably want to integrate the Learning Locker API in your project, to\ndo that you must copy the `docker-compose.yml` content in your\n`docker-compose.yml` project file and adapt it to match with your stack.\n\n## License\n\nThis work is released under the MIT License (see [LICENSE](./LICENSE)).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfun%2Flearninglocker-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenfun%2Flearninglocker-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfun%2Flearninglocker-docker/lists"}