Clean up postgres CI example [ci skip]
This commit is contained in:
		
							parent
							
								
									149c934a1d
								
							
						
					
					
						commit
						06b86de996
					
				|  | @ -1,70 +1,96 @@ | |||
| ## Using PostgreSQL | ||||
| # Using PostgreSQL | ||||
| 
 | ||||
| It's possible to use PostgreSQL database test your apps during builds. | ||||
| As many applications depend on PostgreSQL as their database, you will | ||||
| eventually need it in order for your tests to run. Below you are guided how to | ||||
| do this with the Docker and Shell executors of GitLab Runner. | ||||
| 
 | ||||
| ### Use PostgreSQL with Docker executor | ||||
| ## Use PostgreSQL with the Docker executor | ||||
| 
 | ||||
| If you are using our Docker integration you basically have everything already. | ||||
| If you are using GitLab's Runner with the Docker executor you basically have | ||||
| everything set up already. | ||||
| 
 | ||||
| 1. Add this to your `.gitlab-ci.yml`: | ||||
| First, in your `.gitlab-ci.yml` add: | ||||
| 
 | ||||
| 		services: | ||||
| 		- postgres | ||||
| ```yaml | ||||
| services: | ||||
|   - postgres | ||||
| 
 | ||||
| 		variables: | ||||
| 		  # Configure postgres service (https://hub.docker.com/_/postgres/) | ||||
| 		  POSTGRES_DB: hello_world_test | ||||
| 		  POSTGRES_USER: postgres | ||||
| 		  POSTGRES_PASSWORD: "" | ||||
| variables: | ||||
|   POSTGRES_DB: nice_marmot | ||||
|   POSTGRES_USER: gitlab_runner | ||||
|   POSTGRES_PASSWORD: "" | ||||
| ``` | ||||
| 
 | ||||
| 2. Configure your application to use the database: | ||||
| And then configure your application to use PostgreSQL, for example: | ||||
| 
 | ||||
| 		Host: postgres | ||||
| 		User: postgres | ||||
| 		Password: postgres | ||||
| 		Database: hello_world_test | ||||
| ```yaml | ||||
| Host: localhost | ||||
| User: gitlab_runner | ||||
| Password: | ||||
| Database: nice_marmot | ||||
| ``` | ||||
| 
 | ||||
| 3. You can also use any other available on [DockerHub](https://hub.docker.com/_/postgres/). For example: `postgres:9.3`. | ||||
| You can also use any other docker image available on [Docker Hub][hub-pg]. | ||||
| For example, to use PostgreSQL 9.3 the service becomes `postgres:9.3`. | ||||
| 
 | ||||
| Example: https://gitlab.com/gitlab-examples/postgres/blob/master/.gitlab-ci.yml | ||||
| The `postgres` image can accept some environment variables. For more details | ||||
| check the documentation on [Docker Hub][hub-pg]. | ||||
| 
 | ||||
| ### Use PostgreSQL with Shell executor | ||||
| ## Use PostgreSQL with the Shell executor | ||||
| 
 | ||||
| It's possible to use PostgreSQL on manually configured servers that are using GitLab Runner with Shell executor. | ||||
| You can also use PostgreSQL on manually configured servers that are using | ||||
| GitLab Runner with the Shell executor. | ||||
| 
 | ||||
| 1. First install the PostgreSQL server: | ||||
| First install the PostgreSQL server: | ||||
| 
 | ||||
| 		sudo apt-get install -y postgresql postgresql-client libpq-dev | ||||
| ```bash | ||||
| sudo apt-get install -y postgresql postgresql-client libpq-dev | ||||
| ``` | ||||
| 
 | ||||
| 2. Create an user: | ||||
| Then create a user: | ||||
| 
 | ||||
| 		# Install the database packages | ||||
| 		sudo apt-get install -y postgresql postgresql-client libpq-dev | ||||
| ```bash | ||||
| # Login to PostgreSQL | ||||
| sudo -u postgres psql -d template1 | ||||
| 
 | ||||
| 		# Login to PostgreSQL | ||||
| 		sudo -u postgres psql -d template1 | ||||
| # Create a user for GitLab Runner that can create databases | ||||
| # Do not type the 'template1=#', this is part of the prompt | ||||
| template1=# CREATE USER gitlab_runner CREATEDB; | ||||
| 
 | ||||
| 		# Create a user for runner | ||||
| 		# Do not type the 'template1=#', this is part of the prompt | ||||
| 		template1=# CREATE USER runner CREATEDB; | ||||
| # Create the database & grant all privileges on database | ||||
| template1=# CREATE DATABASE nice_marmot OWNER gitlab_runner; | ||||
| 
 | ||||
| 		# Create the database & grant all privileges on database | ||||
| 		template1=# CREATE DATABASE hello_world_test OWNER runner; | ||||
| # Quit the database session | ||||
| template1=# \q | ||||
| ``` | ||||
| 
 | ||||
| 		# Quit the database session | ||||
| 		template1=# \q | ||||
| Try to connect to database: | ||||
| 
 | ||||
| 3. Try to connect to database: | ||||
| ```bash | ||||
| # Try connecting to the new database with the new user | ||||
| sudo -u gitlab_runner -H psql -d nice_marmot | ||||
| 
 | ||||
| 		# Try connecting to the new database with the new user | ||||
| 		sudo -u gitlab-runner -H psql -d hello_world_test | ||||
| # Quit the database session | ||||
| nice_marmot> \q | ||||
| ``` | ||||
| 
 | ||||
| 		# Quit the database session | ||||
| 		hello_world_test> \q | ||||
| Finally, configure your application to use the database: | ||||
| 
 | ||||
| 4. Configure your application to use the database: | ||||
| ```bash | ||||
| Host: localhost | ||||
| User: gitlab_runner | ||||
| Password: | ||||
| Database: nice_marmot | ||||
| ``` | ||||
| 
 | ||||
| 		Host: localhost | ||||
| 		User: runner | ||||
| 		Password: | ||||
| 		Database: hello_world_test | ||||
| ## Example project | ||||
| 
 | ||||
| We have set up an [Example PostgreSQL Project][postgres-example-repo] for your | ||||
| convenience that runs on [GitLab.com](https://gitlab.com) using our publicly | ||||
| available [shared runners](../runners/README.md). | ||||
| 
 | ||||
| Want to hack on it? Simply fork it, commit and push  your changes. Within a few | ||||
| moments the changes will be picked by a public runner and the build will begin. | ||||
| 
 | ||||
| [hub-pg]: https://hub.docker.com/_/postgres/ | ||||
| [postgres-example-repo]: https://gitlab.com/gitlab-examples/postgres | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue