{"id":16540414,"url":"https://github.com/sameersbn/docker-laboard","last_synced_at":"2025-08-24T17:40:33.033Z","repository":{"id":20528748,"uuid":"23807879","full_name":"sameersbn/docker-laboard","owner":"sameersbn","description":"Docker file to build a Laboard image","archived":false,"fork":false,"pushed_at":"2015-12-13T14:43:53.000Z","size":30,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-05-02T00:52:06.041Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sameersbn.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-09-08T20:52:55.000Z","updated_at":"2024-05-02T00:52:06.042Z","dependencies_parsed_at":"2022-07-23T05:47:08.616Z","dependency_job_id":null,"html_url":"https://github.com/sameersbn/docker-laboard","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sameersbn%2Fdocker-laboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sameersbn%2Fdocker-laboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sameersbn%2Fdocker-laboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sameersbn%2Fdocker-laboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sameersbn","download_url":"https://codeload.github.com/sameersbn/docker-laboard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219859404,"owners_count":16556036,"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-10-11T18:52:24.274Z","updated_at":"2024-10-11T18:52:24.355Z","avatar_url":"https://github.com/sameersbn.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e **NOTICE**\n\u003e\n\u003e This image has reached End-of-Life.\n\n# Table of Contents\n\n- [Introduction](#introduction)\n  - [Version](#version)\n  - [Changelog](Changelog.md)\n- [Contributing](#contributing)\n- [Reporting Issues](#reporting-issues)\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Configuration](#configuration)\n  - [Data Store](#data-store)\n  - [Database](#database)\n    - [MySQL](#mysql)\n      - [External MySQL Server](#external-mysql-server)\n      - [Linking to MySQL Container](#linking-to-mysql-container)\n  - [Putting it all together](#putting-it-all-together)\n  - [Available Configuration Parameters](#available-configuration-parameters)\n- [Shell Access](#shell-access)\n- [Upgrading](#upgrading)\n- [Announcements](https://github.com/sameersbn/docker-laboard/issues/1)\n- [References](#references)\n\n# Introduction\n\nDockerfile to build a [Laboard](https://gitlab.com/laboard/laboard) container image.\n\n## Version\n\nCurrent Version: **1.0.2**\n\n# Contributing\n\nIf you find this image useful here's how you can help:\n\n- Send a Pull Request with your awesome new features and bug fixes\n- Help new users with [Issues](https://github.com/sameersbn/docker-laboard/issues) they may encounter\n- Support the development of this image with a [donation](http://www.damagehead.com/donate/)\n\n# Reporting Issues\n\nDocker is a relatively new project and is active being developed and tested by a thriving community of developers and testers and every release of docker features many enhancements and bugfixes.\n\nGiven the nature of the development and release cycle it is very important that you have the latest version of docker installed because any issue that you encounter might have already been fixed with a newer docker release.\n\nFor ubuntu users I suggest [installing docker](https://docs.docker.com/installation/ubuntulinux/) using docker's own package repository since the version of docker packaged in the ubuntu repositories are a little dated.\n\nHere is the shortform of the installation of an updated version of docker on ubuntu.\n\n```bash\nsudo apt-get purge docker.io\ncurl -s https://get.docker.io/ubuntu/ | sudo sh\nsudo apt-get update\nsudo apt-get install lxc-docker\n```\n\nFedora and RHEL/CentOS users should try disabling selinux with `setenforce 0` and check if resolves the issue. If it does than there is not much that I can help you with. You can either stick with selinux disabled (not recommended by redhat) or switch to using ubuntu.\n\nIf using the latest docker version and/or disabling selinux does not fix the issue then please file a issue request on the [issues](https://github.com/sameersbn/docker-laboard/issues) page.\n\nIn your issue report please make sure you provide the following information:\n\n- The host ditribution and release version.\n- Output of the `docker version` command\n- Output of the `docker info` command\n- The `docker run` command you used to run the image (mask out the sensitive bits).\n\n# Installation\n\nPull the latest version of the image from the docker index. This is the recommended method of installation as it is easier to update image in the future. These builds are performed by the **Docker Trusted Build** service.\n\n```bash\ndocker pull sameersbn/laboard:latest\n```\n\nYou can pull a particular version of Laboard by specifying the version number. For example,\n\n```bash\ndocker pull sameersbn/laboard:1.0.2\n```\n\nAlternately you can build the image yourself.\n\n```bash\ngit clone https://github.com/sameersbn/docker-laboard.git\ncd docker-laboard\ndocker build --tag=\"$USER/laboard\" .\n```\n\n# Quick Start\n\nBefore you can start the Laboard image you need to make sure you have a [GitLab](https://www.gitlab.com/) server running. Checkout the [docker-gitlab](https://github.com/sameersbn/docker-gitlab) project for getting a GitLab server up and running.\n\nYou need to provide the URL of the GitLab server while running Laboard using the `GITLAB_URL` environment configuration. For example if the location of the GitLab server is `172.17.0.2`. Additionally you also need to provide the GitLab API version via the `GITLAB_API_VERSION` option.\n\nYou also require a MySQL database. Please refer to [Database](#database) for instructions on provisioning a MySQL database provider. The following example assumes that you are using a [linked MySQL](#linking-to-mysql-container) container.\n\n```bash\ndocker run --name=laboard -it --rm -p 10080:80 --link mysql:mysql \\\n-e 'GITLAB_URL=http://172.17.0.2' -e 'GITLAB_API_VERSION=7.2' \\\n  sameersbn/laboard:1.0.2\n```\n\n*add '-e NODE_TLS_REJECT_UNAUTHORIZED=0' if your GitLab server uses self-signed SSL certificates*\n\nAlternately, if the GitLab and Laboard servers are running on the same host, you can take advantage of docker links. Lets consider that the GitLab server is running on the same host and has the name **gitlab**, then using docker links:\n\n```bash\ndocker run --name=laboard -it --rm -p 10080:80 --link mysql:mysql \\\n-link gitlab:gitlab -e 'GITLAB_API_VERSION=7.2' \\\nsameersbn/laboard:1.0.2\n```\n\nPoint your browser to `http://localhost:10080`.\n\nYou should now have Laboard ready for testing. If you want to use this image in production the please read on.\n\n# Configuration\n\n## Data Store\n\nFor storage of the application data, you should mount a volume at\n\n* `/home/laboard/data`\n\nSELinux users are also required to change the security context of the mount point so that it plays nicely with selinux.\n\n```bash\nmkdir -p /opt/laboard/data\nsudo chcon -Rt svirt_sandbox_file_t /opt/laboard/data\n```\n\nVolumes can be mounted in docker by specifying the **'-v'** option in the docker run command.\n\n```bash\ndocker run --name=laboard -it --rm \\\n  -v /opt/laboard/data:/home/laboard/data \\\n  sameersbn/laboard:1.0.2\n```\n\n## Database\n\nLaboard uses a database backend to store its data.\n\n### MySQL\n\n#### External MySQL Server\n\nThe image can be configured to use an external MySQL database. The database configuration should be specified using environment variables while starting the Laboard image.\n\nBefore you start the Laboard image create user and database for Laboard.\n\n```sql\nCREATE USER 'laboard'@'%.%.%.%' IDENTIFIED BY 'password';\nCREATE DATABASE IF NOT EXISTS `laboard_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;\nGRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `laboard_production`.* TO 'laboard'@'%.%.%.%';\nCREATE TABLE `laboard_production`.`moves` (`namespace` varchar(255) DEFAULT NULL, `project` varchar(255) DEFAULT NULL, `issue` int(11) DEFAULT NULL,   `from` varchar(255) DEFAULT NULL,   `to` varchar(255) DEFAULT NULL, `date` datetime DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;\nFLUSH PRIVILEGES;\n```\n\n*Assuming that the mysql server host is 192.168.1.100*\n\n```bash\ndocker run --name=laboard -it --rm \\\n  -e 'GITLAB_URL=http://172.17.0.2' \\\n  -e 'DB_HOST=192.168.1.100' -e 'DB_NAME=laboard_production' \\\n  -e 'DB_USER=laboard' -e 'DB_PASS=password' \\\n  sameersbn/laboard:1.0.2\n```\n\n#### Linking to MySQL Container\n\nYou can link this image with a mysql container for the database requirements. The alias of the mysql server container should be set to **mysql** while linking with the Laboard image.\n\nIf a mysql container is linked, only the `DB_HOST` and `DB_PORT` settings are automatically retrieved using the linkage. You may still need to set other database connection parameters such as the `DB_NAME`, `DB_USER`, `DB_PASS` and so on.\n\nTo illustrate linking with a mysql container, we will use the [sameersbn/mysql](https://github.com/sameersbn/docker-mysql) image. When using docker-mysql in production you should mount a volume for the mysql data store. Please refer the [README](https://github.com/sameersbn/docker-mysql/blob/master/README.md) of docker-mysql for details.\n\nFirst, lets pull the mysql image from the docker index.\n\n```bash\ndocker pull sameersbn/mysql:latest\n```\n\nFor data persistence lets create a store for the mysql and start the container.\n\nSELinux users are also required to change the security context of the mount point so that it plays nicely with selinux.\n\n```bash\nmkdir -p /opt/mysql/data\nsudo chcon -Rt svirt_sandbox_file_t /opt/mysql/data\n```\n\nThe updated run command looks like this.\n\n```bash\ndocker run --name mysql -d \\\n  -v /opt/mysql/data:/var/lib/mysql \\\n  sameersbn/mysql:latest\n```\n\nYou should now have the mysql server running. By default the sameersbn/mysql image does not assign a password for the root user and allows remote connections for the root user from the `172.17.%.%` address space. This means you can login to the mysql server from the host as the root user.\n\nNow, lets login to the mysql server and create a user and database for the GitLab application.\n\n```bash\ndocker run -it --rm sameersbn/mysql:latest mysql -uroot -h$(docker inspect --format {{.NetworkSettings.IPAddress}} mysql)\n```\n\n```sql\nCREATE USER 'laboard'@'%.%.%.%' IDENTIFIED BY 'password';\nCREATE DATABASE IF NOT EXISTS `laboard_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;\nGRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `laboard_production`.* TO 'laboard'@'%.%.%.%';\nCREATE TABLE `laboard_production`.`moves` (`namespace` varchar(255) DEFAULT NULL, `project` varchar(255) DEFAULT NULL, `issue` int(11) DEFAULT NULL,   `from` varchar(255) DEFAULT NULL,   `to` varchar(255) DEFAULT NULL, `date` datetime DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;\nFLUSH PRIVILEGES;\n```\n\nWe are now ready to start the Laboard application.\n\n```bash\ndocker run --name=laboard -it --rm --link mysql:mysql \\\n  -e 'GITLAB_URL=http://172.17.0.2' -e 'GITLAB_API_VERSION=7.2' \\\n  -e 'DB_USER=laboard' -e 'DB_PASS=password' \\\n  -e 'DB_NAME=laboard_production' \\\n  sameersbn/laboard:1.0.2\n```\n\n### Putting it all together\n\n```bash\ndocker run --name=laboard -d -\\\n  -v /opt/laboard/data:/home/laboard/data \\\n  -e 'GITLAB_URL=http://172.17.0.2' -e 'GITLAB_API_VERSION=7.2' \\\n  -e 'DB_HOST=192.168.1.100' -e 'DB_NAME=laboard_production' \\\n  -e 'DB_USER=laboard' -e 'DB_PASS=password' \\\n  sameersbn/laboard:1.0.2\n```\n\n### Available Configuration Parameters\n\n*Please refer the docker run command options for the `--env-file` flag where you can specify all required environment variables in a single file. This will save you from writing a potentially long docker run command.*\n\nBelow is the complete list of available options that can be used to customize your Laboard installation.\n\n- **GITLAB_URL**: Url of the GitLab server to allow connections from. No defaults. Automatically configured when a GitLab server is linked using docker links feature.\n- **GITLAB_API_VERSION**: GitlLab API version, defaults to `7.2`.\n- **DB_HOST**: The database server hostname. Defaults to `localhost`.\n- **DB_PORT**: The database server port. Defaults to `3306`.\n- **DB_NAME**: The database database name. Defaults to `laboard_production`\n- **DB_USER**: The database database user. Defaults to `root`\n- **DB_PASS**: The database database password. Defaults to no password\n- **DB_POOL**: The database database connection pool count. Defaults to `10`.\n- **CA_CERTIFICATES_PATH**: List of SSL certificates to trust. Defaults to `/home/laboard/data/certs/ca.crt`.\n- **NODE_TLS_REJECT_UNAUTHORIZED**: Disable rejection of self-signed SSL certificates. Defaults to `1`. Set this option to `0` if your gitlab server uses self-signed SSL certificates.\n\n# Shell Access\n\nFor debugging and maintenance purposes you may want access the containers shell. If you are using docker version `1.3.0` or higher you can access a running containers shell using `docker exec` command.\n\n```bash\ndocker exec -it laboard bash\n```\n\nIf you are using an older version of docker, you can use the [nsenter](http://man7.org/linux/man-pages/man1/nsenter.1.html) linux tool (part of the util-linux package) to access the container shell.\n\nSome linux distros (e.g. ubuntu) use older versions of the util-linux which do not include the `nsenter` tool. To get around this @jpetazzo has created a nice docker image that allows you to install the `nsenter` utility and a helper script named `docker-enter` on these distros.\n\nTo install `nsenter` execute the following command on your host,\n\n```bash\ndocker run --rm -v /usr/local/bin:/target jpetazzo/nsenter\n```\n\nNow you can access the container shell using the command\n\n```bash\nsudo docker-enter laboard\n```\n\nFor more information refer https://github.com/jpetazzo/nsenter\n\n# Upgrading\n\nTo upgrade to newer Laboard releases, simply follow this 3 step upgrade procedure.\n\n- **Step 1**: Update the docker image.\n\n```bash\ndocker pull sameersbn/laboard:1.0.2\n```\n\n- **Step 2**: Stop and remove the currently running image\n\n```bash\ndocker stop laboard\ndocker rm laboard\n```\n\n- **Step 3**: Start the image\n\n```bash\ndocker run --name=laboard -d [OPTIONS] sameersbn/laboard:1.0.2\n```\n\n# References\n  * https://gitlab.com/laboard/laboard\n  * https://gitlab.com/laboard/laboard/blob/master/README.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsameersbn%2Fdocker-laboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsameersbn%2Fdocker-laboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsameersbn%2Fdocker-laboard/lists"}