깃 클론으로 받음
폴더 안으로 들어가서
docker container rm -f $(docker container ls -aq)
컨테이너 정리
이미지 정리
docker image rm -f $(docker image ls -q)
컨테이너 확인
docker ps -a
이미지 확인
docker images
만들어놓은 버전으로 compose up
docker-compose -f docker-compose.mac.yml up
docker images
3개의 이미지가 만들어져 있음.
그런데, build만 해서 그런지 redis, postgres는 안보임
이건 받아오면 됨.
뒤에서 pull로 바꿔주면 됨.
postgres의 db로 이름 명명
docker images
5개 다 들어옴
이렇게 build, pull분리해서 사용할 수 있음.
up (pull, build)
브라우저로 가서 vote, result 앱을 확인해본다.
투표하면 실시간으로 결과가 반영됨.
서비스 디펜던시 이런것도 안걸림.
vote쓰려면 redis가 떠있고 정상적으로 동작해야함. 또 postgres도 미리 떠있어야 함.
postgres도 볼륨을 걸어서 persistant하게 유지해야함.
또 백엔드, 프론드 엔드의 네트워크를 분리해야함.
postgres에 envirnment값이 어떻게 들어갔는지 확인
postgres가 result에 연결이 잘 되었는지 확인
postgres 컨테이너로 들어가본다.
docker compose ps
해당 폴더에 들어가서 ps 해줘야함 안그러면 안뜸.
같은 컴포즈에 속한것들이 그룹핑이 됨.
이제 db에 접속해본다
winpty docker exec -it --user=postgres example-voting-app-db-1 sh
리눅스 커맨드 중에 whoami가 있음
로그인 된 것을 확인.
psql이라는 postgres 쉘을 실행
\c를 실행하면,
postgres db에 postgres 유저로 연동
맨 처음 PostgreSQL의 psql 도구에 접속했을 때도 \c 명령어를 사용하여 원하는 데이터베이스에 연결해야 합니다. 기본적으로 psql에 접속하면 현재 사용자의 기본 데이터베이스에 연결됩니다.
만약 특정 데이터베이스에 접속하려는 경우, \c 명령어를 사용하여 데이터베이스를 변경해야 합니다.
\dt 는 현재 테이블 목록을 보여줌
퍼블리 스키마 밑에,
votes 테이블 있음
dogs를 선택하면 vote에 b가 들어갈 것임.
이 컨테이너들을 셧다운해본다
디폴드 야멀을 쓰지 않았기 때문에
docker-compose -f docker-compose.mac.yml down
이거 깜빡할 꺼 같음
정상적으로 수행하는게 보인다.
보면 네트워크도 같이 날려주는 걸 확인
down은 이미지는 남겨놓는 것을 확인할 수 있다.
숙제 있음.
해결했으나, 현재 프로젝트 기간이라 일단 패스.