Tôi đang xây dựng một thùng chứa docker cho một ứng dụng django, sử dụng nginx và uwsgi. Đối với cơ sở dữ liệu ứng dụng được sử dụng mysql, được đặt trong một container khác nhau và cả hai trong số đó là liên kết với một tập tin docker-compose.yml
:Thêm chứng chỉ SSL vào thùng chứa mysql docker
version: '2'
services:
mysql:
image: mysql:latest
environment:
-MYSQL_DATABASE: TheDatabase
-MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
-MYSQL_USER: TheUsername
-MYSQL_PASSWORD: ThePassword
ports:
-"3306:3306"
django:
build: .
volumes:
- .:/app
ports:
- "443:443"
- "8000:8000"
links:
- mysql
Tôi đang sử dụng chứng chỉ SSL, đó là tự ký sử dụng OpenSSL và được bao gồm trong tệp nginx.conf. Vấn đề là mỗi khi tôi chạy các thùng chứa và cố gắng đăng nhập như superuser tôi nhận được lỗi sau đây 504 hết thời gian. Sau một số lượng khá suy nghĩ tôi đi đến kết luận rằng vấn đề là trong kết nối với cơ sở dữ liệu mysql. Tôi đã nhập vào thùng chứa mysql và thấy rằng Cơ sở dữ liệu ở đó và sau khi kiểm tra các bảng, tôi thấy rằng tất cả các bảng đã được tạo ra. Tuy nhiên, sau khi đọc nhật ký, tôi nhận thấy dòng sau:
[Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key.
Làm cách nào để thêm khóa SSL và chứng chỉ khi tôi đang sử dụng hình ảnh sẵn sàng từ trung tâm docker? Đó có phải là lý do tôi nhận được 504 Lỗi hết thời gian không? Tôi cũng nhận được 3 cảnh báo sau đây:
[Warning] 'db' entry 'sys [email protected]' ignored in --skip-name-resolve mode.
[Warning] 'proxies_priv' entry '@ [email protected]' ignored in --skip-name-resolve mode.
[Warning] 'tables_priv' entry 'sys_config [email protected]' ignored in --skip-name-resolve mode