Frederic G. MARAND 1d504928ce Step 3: working PostgreSQL. | 6 years ago | |
---|---|---|
nginx | 6 years ago | |
node | 6 years ago | |
postgres | 6 years ago | |
.gitignore | 6 years ago | |
Dockerfile | 6 years ago | |
README.md | 6 years ago |
From https://www.codeschool.com/screencasts/build-a-node-app-with-postgres-and-docker
Run nginx
docker run -p 81:80 --name web nginx
docker run -p 81:80 --name web --rm nginx
docker run -p 81:80 --name web -d nginx
foreground, mounting the nginx/html
directory:
docker run --rm \
-p 81:80 \
--name web \
--mount type=bind,source="$PWD"/nginx/html,target=/usr/share/nginx/html \
nginx
# or...
docker run --rm \
-p 81:80 \
--name web \
-v "$PWD"/nginx/html,/usr/share/nginx/html \
nginx
Enter the container: docker exec -it web /bin/bash
Build a local image from the Dockerfile
docker build -t osinet/nginx:latest .
Run the newly built image:
docker run --rm \
-p 81:80 \
--name web \
--mount type=bind,source=$PWD/nginx/html,target=/usr/share/nginx/html \
osinet/nginx
List images
docker images
docker images -a
docker images osinet/nginx
mkdir node
cd node
# edit Dockerfile
docker build -t node-app .
docker run -p 8888:8888 \
-v $PWD/node/src:/usr/src/app/src \
--name voting-node \
--rm \
node-app
Build and run the container
mkdir postgres
cd postgres
# edit Dockerfile
docker build -t node-pg .
docker run -p 5432:5432 \
--name voting-pg \
--rm \
node-pg
Enter the container with a PG client:
# Without the -U, PG will try to use undeclared used root.
docker container exec -it psql -U postgres
In psql
in the container, list databases, create table, list tables:
\l
CREATE TABLE votes (
id INTEGER PRIMARY KEY,
number_of_votes INTEGER,
option_name VARCHAR(20)
);
\dt
Now we have a table:
List of relations
Schema | Name | Type | Owner
--------+-------+-------+----------
public | votes | table | postgres
(1 row)
Insert initial data
INSERT INTO votes (id, number_of_votes, option_name) VALUES (1, 0, 'sandwiches');
INSERT INTO votes (id, number_of_votes, option_name) VALUES (2, 0, 'tacos');
SELECT * FROM votes;
Results:
id | number_of_votes | option_name
----+-----------------+-------------
1 | 0 | sandwiches
2 | 0 | tacos
(2 rows)