วิธีการสร้างภาพ Docker Redmine ที่กำหนดเองของคุณ

Redmine ก่อนการปรับแต่ง
หมายเหตุ: Redmine native docker สามารถค้นหาได้ที่ https://hub.docker.com/_/redmine ที่นี่คุณอาจพบคำแนะนำที่ดีเกี่ยวกับวิธีการเติมข้อมูลในฐานข้อมูลภายนอกและติดตั้งโฟลเดอร์ภายนอก (เพื่อติดตั้งปลั๊กอิน)
หากคุณเหมือนฉันและต้องการดูโค้ดสำหรับการสร้างภาพ Docker Redmine ที่กำหนดเองโดยตรงคุณสามารถไปที่ github.com/lcofre/redmine และตรวจสอบ Dockerfile
ภาพ Docker Redmine เป็นจุดเริ่มต้นที่ดี แต่คุณอาจต้องการปรับแต่งด้วยปลั๊กอินและธีมตามความชอบของคุณ ในคู่มือนี้เราจะสร้างภาพ Docker โดยใช้ภาพอย่างเป็นทางการเป็นฐาน และเพิ่มบางธีมและปลั๊กอิน และอัปโหลดไปยังทะเบียนด็อกเกอร์
เพื่อความง่าย เราจะไม่ใช้ฐานข้อมูลภายนอก แต่ใช้ฐานข้อมูลภายในคอนเทนเนอร์ Redmine เอง แต่สำหรับสภาพแวดล้อมการใช้งานจริง แนะนำให้ติดตั้งคอนเทนเนอร์เก็บข้อมูลที่ได้รับการจัดสรรเฉพาะ
ปลั๊กอินและธีม
เราเลือกใช้ปลั๊กอินและธีมบางรายการเพื่อแสดงวิธีการเพิ่มพวกเข้ากับ Redmine:
- ซ่อนแถบด้านข้าง ปลั๊กอินเพื่อให้มีพื้นที่หน้าจอมากขึ้น โดยเฉพาะเมื่อเขียนปัญหา
- วางจากคลิปบอร์ด เพื่อแนบภาพหน้าจอโดยวางจากคลิปบอร์ดแทนการเลือกไฟล์
- A1 และ Gitmike สองธีมเพื่อเปลี่ยนลักษณะของ UI
เราไม่รวมปลั๊กอินที่ต้องการการย้ายฐานข้อมูล เนื่องจากคุณต้องมีฐานข้อมูลที่มีอยู่ก่อน กรุณาแสดงความคิดเห็นด้านล่างหากคุณต้องการติดตั้งปลั๊กอินที่ต้องการการย้ายฐานข้อมูล เพราะเรามีความคิดที่ดีสำหรับคุณ
เขียน Dockerfile
Dockerfile เป็นสูตรสำหรับสร้างภาพ Docker ขั้นแรกที่เราจะเรียนรู้คือเราต้องใช้ภาพอื่นเป็นฐานสำหรับภาพของเรา เราจะใช้ภาพอย่างเป็นทา
การใช้ Git เพื่อรับคอมโพเนนต์
ในกรณีส่วนใหญ่ ธีมและปลั๊กอินมีเก็บรักษาโค้ดในรีพอสิทอรี่ของ Git ที่เราสามารถดาวน์โหลดโค้ดเวอร์ชันล่าสุดได้ นี่เป็นกรณีสำหรับสามคอมโพเนนต์ต่อไปนี้
ภาพรวมของ Redmine ฐานไม่มี Git แต่เราสามารถเพิ่มมันเข้าไปในภาพรวมได้ด้วยวิธีนี้
RUN apt install -y git
คำสั่งนี้จะถูกดำเนินการเมื่อสร้างภาพรวมและจะช่วยให้คุณใช้ Git ในคำสั่งต่อไป
ธีม Gitmike: พวกเขาแนะนำให้คุณคลอนเรปอย่างตรงไปตรงมา
RUN git clone https://github.com/makotokw/redmine-theme-gitmike.git public/themes/gitmike
บรรทัดนี้จะบันทึกโครงการที่คลอนลงในโฟลเดอร์ที่เหมาะสม public/themes
ซ่อนแถบด้านข้าง: กระบวนการเดียวกันสามารถใช้กับปลั๊กอินได้ สิ่งนี้ไม่ต้องการอะไรนอกจากการวางโฟลเดอร์ที่คลอนลงในโฟลเดอร์ปลั๊กอิน
RUN git clone https://gitlab.com/bdemirkir/sidebar_hide.git plugins/sidebar_hide
Clipboard Image paste: นี่ดูเหมือนกระบวนการปกติเช่นกัน คลอนเรปและคุณพร้อมที่จะเริ่มต้น
RUN git clone https://github.com/RubyClickAP/clipboard_image_paste.git plugins/clipboard_image_paste
แต่หากคุณ อ่านเพิ่มเติม คุณจะเห็นว่า "แนะนำให้ติดตั้ง RMagick gem มิฉะนั้นรูปภาพที่แนบจะไม่แสดงในไฟล์ PDF ที่ส่งออก" ดังนั้นวิธีการทำคืออะไร? มันควรง่ายเพียง
RUN gem install rmagick
แต่คุณอาจรู้ว่าต้องสร้าง gem ก่อนที่จะสามารถติดตั้งได้ ดังนั้นคุณต้องติดตั้งแพคเกจบางอย่างก่อนที่จะติดตั้ง gem บรรทัดที่คุณจริงๆ ต้องการคือ
RUN apt install -y build-essential imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \
&& gem install rmagick
คำสั่งทั้งหมดในคำสั่งเดียว แยกเป็นสองบรรทัดเพื่ออ่านง่าย
ผู้เขียนต้นฉบับของปลั๊กอินนี้ไม่มีเวอร์ชันสำหรับ Redmine 4 แต่การค้นหาชื่อปลั๊กอินใน GitHub นำฉันมาสู่โครงการที่มี: RubyClickAP/clipboard_image_paste
เพิ่มปลั๊กอินหรือธีมจากแหล่งที่ดาวน์โหลด
ธีม A1 เป็นตัวอย่างที่ดีในการอธิบายกรณีที่คุณมีแหล่งที่มา แต่ไม่มี URL ในขณะที่กระบวนการสร้างภาพรวม หนึ่งในตัวเลือกในกรณีเช่นนี้คือการให้แหล่งที่มาให้กับกระบวนการสร้าง โดยที่เนื้อหาจะถูกเพิ่มลงในภาพรวมโดยไม่ต้องดาวน์โหลด
COPY a1 public/themes/a1
สิ่งนี้ต้องการให้โฟลเดอร์ a1 อยู่ในตำแหน่งเดียวกับ Dockerfile
ตอนนี้คุณพร้อมที่จะสร้างภาพรวมของคุณ ดังนั้นเปิดเทอร์มินัลที่ Dockerfile อยู่และดำเนินการ
docker build -t my-redmine .
หลังจากสร้างแล้วคุณจะสามารถเรียกใช้ภาพรวมของคุณด้วย
docker run -it -p 3000:3000 --name my-redmine my-redmine
เข้าไปที่ http://localhost:3000 เพื่อดู Redmine ที่กำหนดเองของคุณ!
Redmine หลังการปรับแต่ง
เคล็ดลับในการเพิ่มปลั๊กอินเพิ่มเติม
เพื่อลองใช้ปลั๊กอินใหม่ คุณควรใช้คอนเทนเนอร์ Redmine ที่สดเสมอ นั่นคือวิธีที่ฉันรู้ว่า rmagick ต้องการการติดตั้งแพคเกจบางอย่าง ก่อนอื่นให้เรียกใช้ตัวอย่างของ Redmine ที่สามารถลบได้ด้วย
docker run --rm -d -p 3000:3000 --name test-redmine redmine
แล้วเข้าสู่ตัวอย่างด้วย
docker exec -it test
อัปโหลดรูปภาพที่กำหนดเองของคุณไปยัง Docker Hub
รูปภาพที่คุณสร้างเสร็จเป็นไปได้ที่สามารถใช้ได้ในสภาพแวดล้อมท้องถิ่นเท่านั้น ถ้าคุณต้องการที่จะทำให้มันสามารถใช้ได้กับผู้อื่น สำหรับตัวอย่างเช่นทุกคน แน่นอนว่าคุณสามารถอัปโหลด Dockerfile และไฟล์ที่เกี่ยวข้องไปยัง git repo และผู้ที่สนใจสามารถสร้างรูปภาพเองได้ แต่ Docker ยังช่วยให้คุณอัปโหลดรูปภาพที่สร้างไว้ไปยังทะเบียนของพวกเขาได้อีกด้วย สำหรับนั้น ให้สร้างบัญชีใน hub.docker.com และสร้างเรื่องราวสำหรับรูปภาพของคุณ จากนั้นเข้าสู่ระบบในเทอร์มินอลดังนี้
docker login
แท็กรูปภาพของคุณเพื่อให้สามารถอัปโหลดไปยัง repo ของคุณ
docker tag my-redmine:latest lcofre/redmine:latest
และอัปโหลดไปยัง repo ดังนี้
docker push lcofre/redmine:latest
รูปภาพ Docker ในทะเบียนของ Docker
ตอนนี้ใครก็สามารถลองใช้รูปภาพของคุณได้โดยการทำดังนี้
docker run -it -p 3000:3000 --name my-redmine lcofre/redmine
เพียงเท่านี้! นี่คือวิธีที่คุณสามารถไปจากการติดตั้ง Redmine มาเป็นเวอร์ชันที่กำหนดเองที่สามารถเข้าถึงได้ในทะเบียน Docker โปรดแบ่งปันความคิดเห็นหรือคำถามของคุณด้านล่าง
ลดขนาดรูปภาพ Docker
คุณจะพบว่า Dockerfile ใน repo รวมบรรทัดหลายๆ บรรทัดเข้าด้วยกัน นี่เป็นคำแนะนำจาก Docker เพื่อทำให้รูปภาพเล็กลง คุณสามารถค้นหาคำแนะนำเหล่านี้และอื่นๆ ได้ที่ https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
คำแนะนำอีกอย่างในการลดขนาดรูปภาพสุดท้ายคือการใช้เวอร์ชัน alpine ของ Redmine
FROM Redmine:alpine
Alpine เป็นการกระจายลินุกซ์ที่แตกต่าง แทนที่จะใช้ apt เพื่อติดตั้งแพ็คเกจที่คุณต้องใช้ apk แทน
เคล็ดลับสุดท้าย: แพ็คเกจที่เราติดตั้งด้วย apt ใน Dockerfile ไม่จำเป็นต้องใช้แล้วหลังจากสร้างรูปภาพแล้ว คุ

อัพเกรด Redmine ที่สุด? ง่าย.
ได้รับเครื่องมือที่มีกำลังในการวางแผนโครงการที่เหมาะสม การจัดการ และควบคุมในซอฟต์แวร์เดียว