neo4j 용기를 시작할 때 추가된 설정

개요


docker-compose로neo4j 컨테이너를 가동했습니다.
처음의yaml 파일에서 몇 가지 설정을 추가했기 때문에 기재하고 싶습니다.

초기 구축 시 설정


처음 구축할 때의 설정은 다음과 같다.
docker-compose.yaml
version: '3'
services:
  neo4j:
    container_name: neo4j
    image: neo4j
    ports:
        - 7474:7474
        - 7687:7687
    volumes: 
        - neo4j-data:/data
        - neo4j-logs:/logs
        - neo4j-conf:/conf

volumes:
  neo4j-data:
  neo4j-logs:
  neo4j-conf:

password의 초기 설정


과제.


neo4j의password는 용기가 시작된 후 UI를 통해 기본 비밀번호를 다시 설정합니다.
나는 웹 응용 프로그램에서neo4j를 사용하여github actions에서 응용 프로그램의 자동 테스트를 진행하고 싶다.
따라서 기본 암호를 수동으로 다시 설정하지 말고 자동으로 설정할 수 있습니다.

이루어지다


컨테이너를 시작할 때 환경 변수에서 암호를 설정하는 방법을 사용했습니다.
docker-compose.yaml
version: '3'
services:
  neo4j:
    container_name: neo4j
    image: neo4j
    ports:
        - 7474:7474
        - 7687:7687
    volumes: 
        - neo4j-data:/data
        - neo4j-logs:/logs
        - neo4j-conf:/conf
+     environment:
+         # default username and password "neo4j"
+         # neo4j password setting (NEO4J_AUTH=neo4j/<password>)
+         - NEO4J_AUTH=neo4j/neo4jpasswprd

volumes:
  neo4j-data:
  neo4j-logs:
  neo4j-conf:

인증서 설정


과제.


웹 응용 프로그램에서neo4j까지의 통신에bolt 프로토콜을 사용하고 싶습니다.
그러나 SSL 인증서가 설정되어 있지 않아 보안 연결을 설정할 수 없으며 출력 오류로 인해 제대로 작동하지 않습니다.
neobolt.exceptions.SecurityError: Failed to establish secure connection to 'EOF occurred in violation of protocol

이루어지다


컨테이너에 다음 인증서와 개인 키를 설정해야 합니다.
https://neo4j.com/developer/kb/setting-up-ssl-with-docker/#_2_copy_ssl_certificates_and_correct_permissions
tree
$HOME/neo4j/ssl/
└── bolt
    ├── private.key
    └── public.crt
인증서/개인 키가 저장된 디렉터리를 용기에 마운트합니다
환경 변수는 인증서와 개인 키의 파일 이름을 지정합니다.
환경 변수의 지정은 다음과 같은 내용을 참고했다.
https://neo4j.com/developer/kb/setting-up-ssl-with-docker/#_3_configure_neo4j
로컬 디렉토리 구성
tree
. 
├── certs
│   ├── private.key
│   └── public.crt
└── docker-compose.yaml
설정 파일
docker-compose.yaml
version: '3'
services:
  neo4j:
    container_name: neo4j
    image: neo4j
    ports:
        - 7474:7474
        - 7687:7687
    volumes: 
        - neo4j-data:/data
        - neo4j-logs:/logs
        - neo4j-conf:/conf
+         - ./certs:/var/lib/neo4j/certificates/bolt
+     environment:
+         - NEO4J_dbms_ssl_policy_bolt_enabled=true
+         - NEO4J_dbms_ssl_policy_bolt_private__key=private.key
+         - NEO4J_dbms_ssl_policy_bolt_public__certificate=public.crt
+         - NEO4J_dbms_connector_bolt_tls__level=REQUIRED
+         - NEO4J_dbms_ssl_policy_bolt_client__auth=NONE

volumes:
  neo4j-data:
  neo4j-logs:
  neo4j-conf:

좋은 웹페이지 즐겨찾기