-
Notifications
You must be signed in to change notification settings - Fork 0
/
Info.txt
109 lines (74 loc) · 3.82 KB
/
Info.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
Docker Commands ---------------------------------------------
Command to start the container orchestration process:
$ sudo docker-compose up
Stop the containers orchestration and delete the volumes:
$ sudo docker-compose down -v
List all containers available:
$ sudo docker ps -a
Create a Docker image from the AerariumBackend project
$ sudo docker build -t potato . --build-arg VERSION=1 --build-arg JAR_PATH=/build/libs/AerariumBackend.jar
Run a container from the created image
$ docker run --name nicholas -itd -p 5000:8080 potato
Utilities ---------------------------------------------------
If you already got a postgres instance on your computer
you can use the following comand to stop it's exection
and release the network port usage:
$ sudo /etc/init.d/postgresql stop
The following commands will connect into a docker container
instance and access the database functionality:
$ sudo docker exec -it <container_name> bash
$ psql <dbname> <username>
Start docker application on a recently started instance:
$ sudo dservice docker start
Connect to the productive database instance:
$ psql --host=aerarium-db.cggcgu4rl6aw.sa-east-1.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=aerarium
Give permission to Key pair generated for the EC2 instance (before SSH connection)
$ chmod 400 mykey.pem
Search images from specific users at the Dockerhub:
$ docker search nickchecan
Pull image from the Dockerhub:
$ docker pull nickchecan
Run docker image at the EC2 instance:
$ docker run -d -p 80:8080 nickchecan/aerarium
Check container execution logs:
$ docker logs <container_id>
Docker User Permission --------------------------------------
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
Search images from specific users at the Dockerhub:
$ docker search nickchecan
Pull image from the Dockerhub:
$ docker pull nickchecan
Run docker image at the EC2 instance:
$ docker run -d -p 80:8080 nickchecan/aerarium
Check container execution logs:
$ docker logs <container_id>
On the database instance (postgres) -------------------------
List the database tables and their respective owners:
$ \dt
List all of the tables, views, and sequences in the database:
$ \z
Quit database cli:
\q
Dockerhub Integration ---------------------------------------
For Travis CI Dockerhub integration, remember to set the following environment variables:
DOCKER_PASSWORD - Dockerhub password
DOCKER_USERNAME - Dockerhub username
AWS ECR Integration -----------------------------------------
For Travis CI AWS ECR, remember to set the following environment variables:
AWS_ACCESS_KEY_ID - Second key value of the credentials file retrieved through the user created at the AWS IAM tool
AWS_DEFAULT_REGION - AWS region (Exaple: sa-east-1)
AWS_SECRET_ACCESS_KEY - First key value of the credentials file retrieved through the user created at the AWS IAM tool
IMAGE_REPO_URL - Repository image URI without ":latest" part
Continuous Deployment ---------------------------------------
Variables to be configured in the Travis CI plataform to accomplish continuous deployment:
CLUSTER_NAME - Cluster created through the Amazon ECS service
TASK_NAME - Task to read ECR images and create containers on EC2 systems
SERVICE_NAME - Service implement to run specific tasks related to the created cluster
AWS IAM User permissions ------------------------------------
User: TRAVIS_CI
- AmazonEC2ContainerRegistryPowerUser
- AmazonECS_FullAccess
Service AWS ECS - Notes -------------------------------------
The parameter "Maximum percent" will have to be set to "100" and the "Minimum healthy percent" on the service maintenance will have to be "0" to tell the cluster to allow busy time for maintenance during application upgrade operations.
To automatize de deployment process is required to specify the Memory Limit in the container configuration during the task creation step.