Điểm:0

Chuyển từ php7.2 sang 7.4 và từ alpine sang ubuntu shell script/Dockerfile question

lá cờ cn

Đây là trong Dockerfile với

TỪ phusion/baseimage:hirsute

làm nền tảng.

Phần này đã hoạt động với php7.2 nhưng chúng tôi cần chuyển sang php7.4

Biến môi trường được chứa trong tệp .env ở Định dạng DB_USER='username'

hoặc trong docker-compose.yml dưới dạng môi trường như:

môi trường:
      - DB_USER=${DB_USER:-default} 
      - DB_PASS=mật khẩu
      - DB_NAME=cơ sở dữ liệu

Phần gốc 1 của việc tạo dbconnect.php (Dockerfile)

CHẠY { \
         tiếng vang "<?php"; \
         echo " \$db = getenv('DB_DRIVER') ?: 'mysqli';"; \
         echo " \$dbversion = getenv('DB_VERSION') ?: '8';"; \
         echo " \$host = getenv('DB_HOST') ?: 'db';"; \
         tiếng vang " \$user = getenv('DB_USER');"; \
         echo " \$pass = getenv('DB_PASS');"; \
         echo " \$dbs = getenv('DB_NAME') ?: 'cơ sở dữ liệu';"; \
         echo " \$client_charset = 'utf8mb4';"; \ 
     } > /var/www/html/db/dbconnect.php

Phần 1 gốc của quá trình tạo dbconnect.php Sản xuất trong vùng chứa đang chạy hiện tại:

<?php
    $db = getenv('DB_DRIVER') ?: 'mysqli';
    $dbversion = getenv('DB_VERSION') ?: '8';
    $host = getenv('DB_HOST') ?: 'db';
    $user = getenv('DB_USER');
    $pass = getenv('DB_PASS');
    $dbs = getenv('DB_NAME') ?: 'cơ sở dữ liệu';
    $client_charset = 'utf8mb4';

Vì vậy, mật khẩu và người dùng không có mặc định, nhưng dù sao đi nữa, nó chỉ lặp lại mà không cần sử dụng các biến.

Tôi đã chơi xung quanh và tạo ra các biến thể thử nghiệm.

Các biến thể sau Phần 2: tất cả đều không hoạt động:

 CHẠY { tiếng vang "<?php"; \
       tiếng vang "\$pass=";\
       tiếng vang "${tikipass}" ; \
       echo "getenv ${DB_USER}" ; \
       tiếng vang "$DB_USER" ; \
       tiếng vang "getenv('DB_USER')"; \
       tiếng vang "chào"; \
       echo "Count = $DB_USER.\n"; \
     } > /var/www/html/db/dbconnect.php

Đầu ra của Biến thể Phần 2 của quá trình tạo dbconnect.php Sản xuất trong vùng chứa đang chạy:

<?php
$vượt qua=
getenv 

getenv('DB_USER')
ê
Đếm = .

Vì vậy, tất cả các biến thể tôi có thể nghĩ đến chỉ là không nắm bắt được nội dung biến

Kết quả dbconnect.php phải ở định dạng sau:

<?php
$db='mysqli';
$dbversion='8.0';
$host='máy chủ cục bộ';
$user='người dùng';
$pass='mật khẩu';
$dbs='cơ sở dữ liệu';
$client_charset='utf8mb4';

Thx cho sự giúp đỡ trước.

Carsten Aevermann avatar
lá cờ cn
Vì vậy, một người đã dọn dẹp mã nhưng phiên bản đầy đủ có tất cả câu hỏi trong đó, bạn nhé :-) Định dạng lại tệp bằng cách xóa tất cả nhận xét sẽ không hữu ích.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.