Score:0

เปลี่ยนจาก php7.2 เป็น 7.4 และจาก alpine เป็น ubuntu shell script/Dockerfile questions

ธง cn

นี่อยู่ใน Dockerfile ด้วย

จาก phusion/baseimage:hirsute

เป็นรองพื้น

ส่วนนี้ทำงานกับ php7.2 แต่เราจำเป็นต้องเปลี่ยนเป็น php7.4

ตัวแปรสภาพแวดล้อมมีอยู่ในไฟล์ .env ในรูปแบบ DB_USER='ชื่อผู้ใช้'

หรือใน docker-compose.yml เป็นสภาพแวดล้อมดังนี้:

สิ่งแวดล้อม:
      - DB_USER=${DB_USER:-default} 
      - DB_PASS=รหัสผ่าน
      - DB_NAME=ฐานข้อมูล

ต้นฉบับตอนที่ 1 ของการสร้าง dbconnect.php (Dockerfile)

วิ่ง { \
         echo "<?php"; \
         echo " \$db = getenv('DB_DRIVER') ?: 'mysqli';"; \
         echo " \$dbversion = getenv('DB_VERSION') ?: '8';"; \
         echo " \$host = getenv('DB_HOST') ?: 'db';"; \
         echo " \$user = getenv('DB_USER');"; \
         echo " \$pass = getenv('DB_PASS');"; \
         echo " \$dbs = getenv('DB_NAME') ?: 'ฐานข้อมูล';"; \
         echo " \$client_charset = 'utf8mb4';"; \ 
     } > /var/www/html/db/dbconnect.php

ต้นฉบับตอนที่ 1 ของการสร้าง dbconnect.php ผลิตในคอนเทนเนอร์ที่กำลังรันอยู่:

<?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') ?: 'ฐานข้อมูล';
    $client_charset = 'utf8mb4';

ดังนั้นรหัสผ่านและผู้ใช้จึงไม่มีค่าเริ่มต้น แต่อย่างไรก็ตาม มันก็สะท้อนออกมาโดยไม่ต้องใช้ตัวแปรใดๆ

ฉันลองเล่นและสร้างตัวแปรทดสอบ

กำลังติดตามตัวแปร Part2: ทั้งหมดไม่ทำงาน:

 เรียกใช้ { echo "<?php"; \
       เสียงสะท้อน "\$pass=";\
       echo "${tikipass}" ; \
       echo "getenv ${DB_USER}" ; \
       echo "$DB_USER" ; \
       echo "getenv('DB_USER')"; \
       เสียงสะท้อน "สวัสดี"; \
       echo "จำนวน = $DB_USER.\n"; \
     } > /var/www/html/db/dbconnect.php

ผลลัพธ์ของตัวแปรส่วนที่ 2 ของการสร้าง dbconnect.php ผลิตในคอนเทนเนอร์ที่กำลังรัน:

<?php
$pass=
เกเตน 

getenv('DB_USER')
สวัสดี
นับ = .

ดังนั้นตัวแปรทั้งหมดที่ฉันคิดได้ก็แค่อย่าจับเนื้อหาตัวแปร

ผลลัพธ์ dbconnect.php ควรอยู่ในรูปแบบต่อไปนี้:

<?php
$db='mysqli';
$dbversion='8.0';
$host='localhost';
$user='ผู้ใช้';
$pass='รหัสผ่าน';
$dbs='ฐานข้อมูล';
$client_charset='utf8mb4';

ขอบคุณสำหรับความช่วยเหลือล่วงหน้า

Carsten Aevermann avatar
cn flag
ดังนั้นใคร ๆ ก็ล้างรหัส แต่เวอร์ชันเต็มมีคำถามทั้งหมดอยู่ในนั้น nioce :-) การจัดรูปแบบไฟล์ใหม่โดยการลบความคิดเห็นทั้งหมดจะไม่ช่วยอะไร

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา