{"id":13804724,"url":"https://github.com/zodern/meteor-docker","last_synced_at":"2025-08-01T19:10:13.953Z","repository":{"id":28337092,"uuid":"114410908","full_name":"zodern/meteor-docker","owner":"zodern","description":"Docker image for Meteor.","archived":false,"fork":false,"pushed_at":"2024-07-12T20:21:02.000Z","size":191,"stargazers_count":52,"open_issues_count":5,"forks_count":33,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-10-19T15:15:54.700Z","etag":null,"topics":["docker-image","meteor","meteor-up"],"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/zodern.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":"2017-12-15T21:02:17.000Z","updated_at":"2024-09-14T05:15:30.000Z","dependencies_parsed_at":"2024-07-12T22:41:47.361Z","dependency_job_id":null,"html_url":"https://github.com/zodern/meteor-docker","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/zodern/meteor-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zodern%2Fmeteor-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zodern%2Fmeteor-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zodern%2Fmeteor-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zodern%2Fmeteor-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zodern","download_url":"https://codeload.github.com/zodern/meteor-docker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zodern%2Fmeteor-docker/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268281909,"owners_count":24225160,"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-08-01T02:00:08.611Z","response_time":67,"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":["docker-image","meteor","meteor-up"],"created_at":"2024-08-04T01:00:53.240Z","updated_at":"2025-08-01T19:10:13.924Z","avatar_url":"https://github.com/zodern.png","language":"Shell","funding_links":[],"categories":["Docker Images"],"sub_categories":[],"readme":"zodern/meteor Docker Image\n===\n\n![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/zodern/meteor-docker/test-publish.yaml?branch-master\u0026style=flat-square) ![Docker Pulls](https://img.shields.io/docker/pulls/zodern/meteor?style=flat-square)\n\nDocker image to run Meteor apps.\n\n### Features\n\n- One image supports every Meteor version (tested with 1.2 - 2.13 and newer)\n- Mostly supports Meteor 3 (requires making `programs/server/shrinkwrap.json` [writable](https://github.com/meteor/meteor/issues/12932) due to a bug in Meteor 3)\n- Automatically uses correct node and npm version\n- Runs app as non-root user\n- Compatible with Meteor up\n\n## Tags\n\n- `zodern/meteor` The recommended version. Runs the app as a non-root user.\n- `zodern/meteor:root` Compatible with meteord. Runs the app as the root user and has phantomjs installed. Any notes below about permissions do not apply to this image.\n- `zodern/meteor:slim` Coming soon. Is a smaller image without node or npm pre-installed. During ONBUILD or when starting the app, it will install the correct version.\n\n## How To Use\n\n### Permissions\n\nThis image runs the app with the `app` user. The owner of any files or folders your app uses inside the Docker container should be changed to `app`.\n\n### Meteor Up\n\nIn your mup config, change `app.docker.image` to `zodern/meteor`.\n\nIf you want to use mup's `buildInstructions` option to run commands as root, you can do so by temporarily changing the user:\n\n```\nbuildInstructions: [\n  'USER root',\n  'RUN apt-get update \u0026\u0026 apt-get install -y imagemagick graphicsmagick',\n  'USER app'\n]\n```\n\n### Compressed bundle\n\nYou can create the bundle with the `meteor build` command. The bundle should be available in the container at `/bundle/bundle.tar.gz`.\n\n#### Dockerfile\n\nCreate a file named `Dockerfile` and add the following:\n\n```Dockerfile\nFROM zodern/meteor\nCOPY --chown=app:app ../path/to/bundle.tar.gz /bundle/bundle.tar.gz\n```\n\nThen build and run the image with\n\n```bash\ndocker build --build-arg EXACT_NODE_VERSION=\u003ctrue || false\u003e --build-arg NODE_VERSION=\u003cnode version\u003e -t meteor-app .\ndocker run --env NODE_VERSION=\u003cnode version\u003e --env EXACT_NODE_VERSION=\u003ctrue || false\u003e --name my-meteor-app meteor-app\n```\n\nAnd your app will be running on port 3000\n\nThe `(--build-arg || --env) NODE_VERSION=\u003cnode version\u003e` is optional, and only needed if a command in your docker file will use a specific node or npm version.\n\nIf any Node versions in `image/setup/versions.json` match the same major version of Node your app needs, the version in `versions.json` is used instead since it will have additional security fixes missing in the version Meteor specifies. If there is no matching major version, it will use the exact version Meteor specifies. To always use the exact version, you can use set `(--build-arg || --env) EXACT_NODE_VERSION=true`\n\n#### Volume\n\nRun\n\n```bash\n  docker run --name my-meteor-app -v /path/to/folder/with/bundle:/bundle -p 3000:3000 -e \"ROOT_URL=http://app.com\" zodern/meteor\n```\n\n### Built app\n\n`Built app` refers to an uncompressed bundle that already has had it's npm dependencies installed.\n\nWhen using a compressed bundle, the bundle is decompressed and the app's npm dependencies are installed every time the app is started, which can take a while. By using this method instead, both steps are done before the container is started, allowing it to start much faster. Meteor up's `Prepare Bundle` feature uses this.\n\nBefore following the instructions in either of the next two sections, build your app with `meteor build --directory ../path/to/put/bundle`.\n\nThe bundle should be available in the container at `/built_app`.\n\n#### Docker Image\n\nCreate a file named `Dockerfile` and copy the following into it:\n\n```Dockerfile\nFROM zodern/meteor\nCOPY --chown=app:app ./path/to/bundle /built_app\nRUN cd /built_app/programs/server \u0026\u0026 npm install\n```\n\nThen build and run your image with:\n\n```bash\ndocker build -t meteor-app --build-arg NODE_VERSION=\"node version\" .\ndocker run --name my-meteor-app -p 3000:3000 -e \"ROOT_URL=http://app.com\" meteor-app\n```\n\n#### Volume\n\nIf possible, you should create a docker image as described in the previous instructions since it is more reliable.\n\nFirst, make sure you have the correct version of node installed for the Meteor version your app uses, and then run\n\n```bash\ncd /path/to/bundle\ncd programs/server\nnpm install\n```\n\nNext, start the docker container with\n\n```bash\ndocker run --name my-meteor-app -v /path/to/bundle:/built_app -p 3000:3000 -e \"ROOT_URL=http://app.com\" zodern/meteor\n```\n\n### Options\n\n#### NPM_INSTALL_OPTIONS\n\nWhen using a compressed bundle, you can specify the arguments used when running `npm install` by setting the environment variable `NPM_INSTALL_OPTIONS`.\n\n## Contributing\n\nTests can be run with `npm test`. The tests can not be run on Windows, though WSL does work. Docker should be installed before running the tests.\n\nCommit messages should start with one of these to allow the changelog and version to be updated correctly:\n\n- `fix:` fixes a bug\n- `feat:` adds a feature\n- `perf:`\n- `docs:`\n- `chore:` \n- `ci:`\n\nIf the change is a breaking change, add `BREAKING CHANGE:` to the commit description\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzodern%2Fmeteor-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzodern%2Fmeteor-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzodern%2Fmeteor-docker/lists"}