{"id":13588088,"url":"https://github.com/lemire/docker_programming_station","last_synced_at":"2025-04-29T23:58:37.247Z","repository":{"id":42205688,"uuid":"266160745","full_name":"lemire/docker_programming_station","owner":"lemire","description":"A simple script to help programmers who want to work within Docker","archived":false,"fork":false,"pushed_at":"2025-01-06T18:26:17.000Z","size":59,"stargazers_count":154,"open_issues_count":1,"forks_count":21,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-29T23:58:30.794Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lemire.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-05-22T16:44:21.000Z","updated_at":"2025-01-08T23:56:41.000Z","dependencies_parsed_at":"2023-11-30T20:29:59.329Z","dependency_job_id":"34f46a0b-55ec-41c5-b81f-60aaa888950e","html_url":"https://github.com/lemire/docker_programming_station","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemire%2Fdocker_programming_station","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemire%2Fdocker_programming_station/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemire%2Fdocker_programming_station/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemire%2Fdocker_programming_station/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lemire","download_url":"https://codeload.github.com/lemire/docker_programming_station/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251602817,"owners_count":21615963,"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","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-08-01T15:06:30.274Z","updated_at":"2025-04-29T23:58:37.197Z","avatar_url":"https://github.com/lemire.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"## Docker Programming Station\n\n\nThis project provides a simple bash script that one can use to do programming tasks in a\nDocker environment capturing a standard Ubuntu distribution. \n\nThe Dockerfile sets up an image (called by default programming_station-for-yourname). \nThe image is built once when you first call the script. It contains the compilers\nand build tools. It does not contain your code: your code is meant to go in \nthe current directory. Importantly, the very same image can be used over\nmultiple projects.\n\n\nThen it passes your command: your command runs in the current\ndirectory but within the image. Docker does not copy your code to the image: everything\nis read and stored in the current directory. You also have only access to the current\ndirectory from within docker.\n\nSo you can do basic programming tasks:\n\n```bash\n./run-docker-station ' gcc --version  '\n./run-docker-station ' git clone https://github.com/simdjson/simdjson.git '\n./run-docker-station ' mkdir build '\n./run-docker-station ' cd build \u0026\u0026 cmake ../simdjson '\n./run-docker-station ' cd build \u0026\u0026 cmake --build . '\n```\n\nYou can even run perf though you need to know where to find it:\n\n```bash\n./run-docker-station ' /usr/lib/linux-tools/5.4.0-26-generic/perf stat ls '\n```\n\nFor convenience, configure you system so that `run-docker-station` is in your PATH. If you just want to enter in a bash shell with access to your current directory, you can do so:\n\n```bash\nrun-docker-station bash\n```\n\nBe mindful that the shell will only have access to the current directory and its subdirectories. You should run the script from the directory of your choosing.\n\nIf you like, you can even call the script from a Makefile. It is just a regular bash\nscript.\n\nYou can put `run-docker-station` in your `PATH` by adding the `docker_programming_station` directory to it and\nthus be able to call `run-docker-station` from everywhere. Your are not limited to one instance. However, each\ninstance will only have access to its directory. However, the first time the image is constructed,\nyou might want to run it in the `docker_programming_station` directory otherwise you may get\nthe error \"The Dockerfile  must be within the build context\".\nYou can simply copy the Dockerfile and the script in any repository if you prefer to avoid messing\nwith the `PATH` variable.\n\nFeatures: \n\n- This works whether you have an ARM-based server or an Intel based mac.\n- The files created in the directory will be owned by you (the user).\n- I works on systems supporting Security-Enhanced Linux.\n- You have sudo access from within the container. Your password is your user ID.\n\nCaution:\n- The first time you run the script, it builds the image which is an expensive process. It is done only once, however.\n- You should map specific directories insider a user directory. Do not use this script to map system-owned  directories like `/home/` or `/usr/` as it would be unsafe.\n\nTricks:\n- If you put the `run-docker-station` command in your PATH, you will be able to run it from everywhere.\n- A handy command to run from time to time is `docker system prune`, as it can help you remove unneeded images. I recommend running `docker image prune -a` regularly.\n- If something does not work, you can try deleting all containers and images `docker rm -vf $(docker ps -a -q) ; docker rmi -f $(docker images -a -q)`. Such a reset can solve a surprising number of otherwise mysterious problems.\n\n## Memory Usage\n\nUnder Windows and macOS, docker will only use relatively little memory.  You may want to allocate more: [Windows](https://docs.docker.com/docker-for-windows/#advanced) and [macOS](https://docs.docker.com/docker-for-mac/#memory).\n\n## Requirements\n\n- A working docker installation under Linux, macOS or related system.\n- Bash\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemire%2Fdocker_programming_station","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flemire%2Fdocker_programming_station","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemire%2Fdocker_programming_station/lists"}