ฉันกำลังเรียกใช้คอนเทนเนอร์นักเทียบท่า apache2 บนกล่องอูบุนตูของฉัน แต่มันยังคงเขียนบันทึกไปยังระบบปฏิบัติการโฮสต์ของฉัน รายละเอียดด้านล่าง:
ตัวอย่าง/นักเทียบท่า/apache2/Dockerfile
จาก php:5.6.34-apache
คัดลอก ./sites-available/mysite.conf /etc/apache2/sites-available/mysite.conf
เรียกใช้ a2dissite 000-default.conf
#RUN a2dissite เริ่มต้น-ssl.conf
เรียกใช้ a2ensite mysite.conf
กับ:
ตัวอย่าง/นักเทียบท่า/apache2/sites-available/mysite.conf:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName localhost
ServerAlias localhost
#DocumentRoot /var/www/html
DocumentRoot /var/www
ErrorLog /dev/stderr
CustomLog /dev/stdout combined
#ErrorLog ${APACHE_LOG_DIR}/error.log
#CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
ที่ฉันสร้าง / รันด้วย:
ตัวอย่าง/นักเทียบท่า-compose.yaml:
รุ่น: '3.8'
บริการ:
apache2-php:
container_name: apache2-php-คอนเทนเนอร์
รูปภาพ: apache2-php-image
สร้าง:
บริบท: ./docker/apache2
พอร์ต:
- "8082:80"
แต่ บันทึก
, วิ่ง
และ ล็อค
โฟลเดอร์ถูกสร้างขึ้นบนโฮสต์ของฉันภายใต้ผู้ใช้รูทหนึ่งโฟลเดอร์ ข้างต้น ไฟล์ docker-compose.yaml ของฉัน:
$ ll
รวม 60
drwxrwxr-x 3 ผู้ใช้ ผู้ใช้ 4096 พ.ย. 58 09:22 ตัวอย่าง/
drwxr-xr-x 3 รูทรูท 4096 15 พ.ย. 10:40 ล็อค/
drwxr-xr-x 3 รูทรูท 4096 15 พ.ย. 10:40 น. บันทึก /
drwxr-xr-x 3 รูทรูท 4096 15 พ.ย. 10:40 run/
กับ:
âââ บันทึก
â âââ apache2
â âââ error.log
â âââ other_vhosts_access.log
ฉันได้ลองคำแนะนำที่นี่แล้ว:
กำลังเขียนบันทึก Apache2 ไปยัง stdout/stderr หรือไม่
แต่ก็ไม่มีผล
เหตุใดโฟลเดอร์/ไฟล์เหล่านั้นจึงถูกสร้างขึ้นที่ตำแหน่งนั้นบนโฮสต์ของฉัน และฉันจะกำหนดค่าคอนเทนเนอร์ apache2 ให้เขียนบันทึกภายในคอนเทนเนอร์เท่านั้น ไม่ใช่บนโฮสต์ของฉันได้อย่างไร