คู่มือภาษาและกรอบงาน
วิธีใช้งาน Rails Container Application อย่างมีประสิทธิภาพ
8 นาที
บทนำ back4app containers เป็นแพลตฟอร์มที่ทรงพลังสำหรับการโฮสต์แอปพลิเคชัน rails ด้วยความสามารถในการปรับใช้แอป rails ที่ทำงานใน docker โดยอัตโนมัติ คุณสามารถเริ่มต้นโปรเจกต์ของคุณในสภาพแวดล้อมที่สามารถปรับขนาดและยืดหยุ่นได้อย่างง่ายดาย ในคู่มือนี้ เราจะพาคุณไปผ่านกระบวนการเตรียมและปรับใช้แอปพลิเคชัน rails ของคุณบน back4app containers โดยครอบคลุมทุกอย่างตั้งแต่โปรเจกต์ง่ายๆ ไปจนถึงการตั้งค่าที่ซับซ้อนมากขึ้น เราจะเริ่มต้นด้วยการเตรียมความพร้อมที่จำเป็น จากนั้นจะไปที่การทำให้แอปพลิเคชันเป็น docker ทดสอบในเครื่อง ผลักดันโปรเจกต์ไปยัง github ตั้งค่าโปรเจกต์บน back4app containers ตรวจสอบการปรับใช้ และแก้ไขปัญหาทั่วไป หากคุณมีคำถามหรือความคิดเห็นใดๆ ยินดีให้เข้าร่วมการสนทนาในช่อง #containers บน back4app community ใน slack คุณยังสามารถติดต่อเราที่ community\@back4app com ได้ตลอดเวลา หากคุณต้องการตรวจสอบตัวอย่างโปรเจกต์ ruby on rails ที่ทำงานบน back4app containers สามารถไปที่ https //github com/templates back4app/containers python flask sample 1 เตรียมแอปพลิเคชัน rails ของคุณ ก่อนที่จะนำแอป rails ของคุณไปใช้งานบน back4app containers คุณต้องมั่นใจว่ามันพร้อมสำหรับการใช้งาน ซึ่งรวมถึงการกำหนดค่าฐานข้อมูลของคุณ การตั้งค่าตัวแปรสภาพแวดล้อม และการตรวจสอบให้แน่ใจว่ามีการรวมการพึ่งพาที่จำเป็นทั้งหมด คุณควรตรวจสอบให้แน่ใจว่าแอป rails ของคุณทำงานบนเวอร์ชันที่เข้ากันได้ของ ruby และ rails ก่อนอื่นให้แน่ใจว่าแอป rails ของคุณใช้ฐานข้อมูลที่พร้อมสำหรับการผลิต เช่น postgresql, mysql หรือ mariadb อัปเดต gemfile ของคุณเพื่อรวม gem ตัวปรับฐานข้อมูลที่จำเป็น จากนั้นรัน bundle install เพื่ออัปเดตการพึ่งพาของคุณ ต่อไปให้กำหนดค่า config/database yml ของคุณเพื่อใช้การตั้งค่าฐานข้อมูลการผลิตที่เหมาะสม รวมถึงตัวแปรสภาพแวดล้อมที่จำเป็นสำหรับข้อมูลรับรองฐานข้อมูลของคุณ นอกจากนี้ยังจำเป็นต้องจัดการข้อมูลที่ละเอียดอ่อน เช่น คีย์ api และโทเค็นลับ โดยใช้ตัวแปรสภาพแวดล้อม rails มีวิธีแก้ปัญหาที่สร้างขึ้นมาเพื่อสิ่งนี้เรียกว่า credentials yml enc ใช้คำสั่ง rails credentials\ edit เพื่อแก้ไขไฟล์ข้อมูลรับรองที่เข้ารหัสของคุณ และเพิ่มข้อมูลที่ละเอียดอ่อนของคุณที่นั่น ตรวจสอบให้แน่ใจว่าใช้ rails application credentials เพื่อเข้าถึงค่าเหล่านี้ในแอปพลิเคชันของคุณ อีกด้านที่สำคัญในการเตรียมแอป rails ของคุณสำหรับการใช้งานคือการตรวจสอบให้แน่ใจว่าทรัพย์สินที่จำเป็นทั้งหมดถูกคอมไพล์และพร้อมใช้งานในสภาพแวดล้อมการผลิต เพื่อให้บรรลุสิ่งนี้ ให้ตรวจสอบไฟล์ config/environments/production rb ของคุณและตรวจสอบให้แน่ใจว่าการตั้งค่าสำหรับ asset pipeline และไฟล์สถิตถูกกำหนดค่าอย่างถูกต้อง นอกจากนี้ให้แน่ใจว่าโฟลเดอร์ app/assets ของคุณรวมไฟล์ javascript, css และภาพที่จำเป็นทั้งหมด สุดท้ายให้ตรวจสอบว่าแอป rails ของคุณทำงานบนเวอร์ชันที่เข้ากันได้ของ ruby และ rails ตรวจสอบไฟล์ ruby version และ gemfile เพื่อยืนยันเวอร์ชัน ruby และเวอร์ชัน gem ของ rails ตามลำดับ อัปเดตสิ่งเหล่านี้ตามความจำเป็นและรัน bundle update เพื่อให้แน่ใจว่าการพึ่งพาทั้งหมดเข้ากันได้ เมื่อแอปของคุณถูกกำหนดค่าอย่างถูกต้องแล้ว คุณสามารถดำเนินการต่อไปยังขั้นตอนถัดไปได้。 2\ การทำให้เป็น docker ในการปรับใช้แอป rails ของคุณบน back4app containers คุณจะต้องสร้าง dockerfile ไฟล์นี้จะสั่งให้ docker สร้างภาพคอนเทนเนอร์สำหรับแอปพลิเคชันของคุณ dockerfile ควรรวมคำสั่งสำหรับการติดตั้งความต้องการทั้งหมด การตั้งค่าพื้นที่ทำงานของแอปพลิเคชัน และการรันขั้นตอนการสร้างที่จำเป็น เช่น การคอมไพล์แอสเซ็ต。 ด้านล่างนี้คือตัวอย่าง dockerfile สำหรับแอปพลิเคชัน rails ที่ซับซ้อนมากขึ้น \# start from the official ruby image from ruby 3 0 3 \# install node js and yarn (needed for rails asset compilation) run apt get update qq && apt get install y nodejs postgresql client yarn \# set the working directory workdir /myapp \# add the gemfile and gemfile lock to the image copy gemfile /myapp/gemfile copy gemfile lock /myapp/gemfile lock \# install gems run bundle install \# copy the rest of the application into the image copy /myapp \# expose the port that the rails server will run on expose 3000 \# define the command to start the server cmd \["rails", "server", " b", "0 0 0 0"] นี่คือ dockerfile ที่ตั้งค่าสภาพแวดล้อม ruby 3 0 ติดตั้ง node js และ postgresql client ตั้งค่าพื้นที่ทำงาน ติดตั้ง gems ที่จำเป็น และคอมไพล์แอสเซ็ตก่อนที่จะเริ่มเซิร์ฟเวอร์ rails。 3\ ทดสอบโปรเจกต์ของคุณในเครื่อง ก่อนที่จะปรับใช้แอป rails ของคุณไปยัง back4app containers สิ่งสำคัญคือต้องทดสอบในเครื่องโดยใช้ docker นี่จะช่วยให้แน่ใจว่า dockerfile ของคุณถูกกำหนดค่าอย่างถูกต้อง และแอปพลิเคชันของคุณทำงานตามที่คาดหวังภายในคอนเทนเนอร์ docker เพื่อทำเช่นนี้ สร้างภาพ docker และรันคอนเทนเนอร์โดยใช้คำสั่งต่อไปนี้ docker build t my rails app docker run p 3000 3000 my rails app เมื่อคอนเทนเนอร์ทำงานแล้ว คุณสามารถเยี่ยมชม http //localhost 3000 ในเบราว์เซอร์ของคุณเพื่อให้แน่ใจว่าแอป rails ของคุณทำงานตามที่คาดหวัง หากคุณพบปัญหาใด ๆ ให้ตรวจสอบ dockerfile และการกำหนดค่าแอปพลิเคชันของคุณเพื่อตรวจสอบและแก้ไขปัญหาก่อนที่จะดำเนินการปรับใช้。 4\ ดันโปรเจกต์ของคุณไปยัง github ในการปรับใช้แอป rails ของคุณบน back4app containers คุณจะต้องดันโปรเจกต์ของคุณไปยังที่เก็บ github หากคุณยังไม่ได้ทำ ให้สร้างที่เก็บใหม่บน github และดันโปรเจกต์ของคุณโดยใช้คำสั่งต่อไปนี้ git init git add git commit m "initial commit" git remote add origin https //github com/your username/your repo git git push u origin master โดยการดันโปรเจกต์ของคุณไปยัง github คุณจะเปิดโอกาสให้ back4app containers เข้าถึงโค้ดของคุณและปรับใช้โดยอัตโนมัติเมื่อมีการอัปเดต 5\ ปรับใช้แอปพลิเคชันของคุณบน back4app containers ในการปรับใช้แอป rails ของคุณบน back4app containers เริ่มต้นโดยการเข้าสู่ระบบบัญชี back4app ของคุณและเชื่อมต่อที่เก็บ github ของคุณกับแพลตฟอร์ม เมื่อเชื่อมต่อแล้ว ให้ไปที่ส่วน containers และสร้างแอปคอนเทนเนอร์ใหม่ ในระหว่างกระบวนการนี้ คุณสามารถปรับแต่งเส้นทาง dockerfile ของคุณ และสร้างตัวแปรสภาพแวดล้อมที่จำเป็นสำหรับแอปพลิเคชันของคุณ คุณสามารถติดตามเอกสารเหล่านี้เพื่อการแนะนำที่ดีกว่า 1 เชื่อมต่อที่เก็บ github ของคุณกับ back4app https //www back4app com/docs containers/integrate with github 2 เตรียมโปรเจกต์ของคุณสำหรับการปรับใช้ https //www back4app com/docs containers/prepare your deployment โดยสรุป คอนเทนเนอร์จะปฏิบัติตามคำแนะนำที่ระบุใน dockerfile ของคุณและเริ่มสร้างแอปของคุณ หลังจากกำหนดค่าคอนเทนเนอร์แอปของคุณ back4app จะสร้างภาพคอนเทนเนอร์โดยอัตโนมัติโดยใช้ dockerfile และปรับใช้แอป rails ของคุณบนแพลตฟอร์ม กระบวนการปรับใช้อาจใช้เวลาสักครู่ ขึ้นอยู่กับขนาดและความซับซ้อนของแอปพลิเคชันของคุณ เมื่อการปรับใช้เสร็จสิ้น back4app containers จะให้ url ที่ไม่ซ้ำกันแก่คุณซึ่งคุณสามารถเข้าถึงแอปที่ปรับใช้ของคุณได้ 6\ ตรวจสอบการปรับใช้และจัดการกับข้อผิดพลาดที่อาจเกิดขึ้น back4app containers มีแดชบอร์ดที่สะดวกสำหรับการติดตามความก้าวหน้าของการปรับใช้แอปพลิเคชันของคุณและผลลัพธ์จากบันทึก ตรวจสอบบันทึกการปรับใช้และจัดการกับข้อผิดพลาดหรือข้อความเตือนที่อาจเกิดขึ้นระหว่างการปรับใช้ โดยการตรวจสอบการปรับใช้ของคุณอย่างกระตือรือร้นและจัดการกับปัญหาอย่างรวดเร็ว คุณจะมั่นใจได้ว่าการปรับใช้แอป rails ของคุณจะราบรื่นและประสบความสำเร็จ แดชบอร์ด back4app containers ยังช่วยให้คุณสามารถติดตามการใช้ทรัพยากรของแอปพลิเคชันของคุณ โดยให้ข้อมูลเชิงลึกเกี่ยวกับการใช้ cpu, หน่วยความจำ และการจัดเก็บ ข้อมูลนี้สามารถช่วยให้คุณระบุจุดคอขวดที่อาจเกิดขึ้นหรือพื้นที่สำหรับการปรับปรุง 7\ การแก้ไขปัญหาทั่วไป นี่คือปัญหาทั่วไปบางประการที่คุณอาจพบเมื่อปรับใช้แอป rails บน back4app containers และวิธีการแก้ไข การสร้าง docker ล้มเหลว ตรวจสอบให้แน่ใจว่า dockerfile ของคุณถูกจัดรูปแบบอย่างถูกต้องและติดตั้งการพึ่งพาที่จำเป็นทั้งหมด ตรวจสอบเส้นทางไฟล์และคำสั่งที่ใช้ใน dockerfile ยืนยันว่าภาพพื้นฐานของคุณเข้ากันได้กับเวอร์ชัน ruby และ rails ของแอปพลิเคชันของคุณ หากปัญหายังคงอยู่ ให้พิจารณาสร้างภาพ docker ในเครื่องเพื่อตรวจสอบและแก้ไขปัญหา ปัญหาการเชื่อมต่อฐานข้อมูล ตรวจสอบให้แน่ใจว่าคุณได้กำหนดค่าการตั้งค่าฐานข้อมูลของคุณอย่างถูกต้อง รวมถึงตัวแปรสภาพแวดล้อมที่เหมาะสมสำหรับข้อมูลรับรองฐานข้อมูลของคุณ ตรวจสอบให้แน่ใจว่าคุณใช้ตัวเชื่อมต่อฐานข้อมูลที่ถูกต้องสำหรับฐานข้อมูลที่เลือก หากคุณใช้บริการฐานข้อมูลภายนอก ให้แน่ใจว่าคอนเทนเนอร์ของแอปพลิเคชันของคุณสามารถเข้าถึงบริการได้และพอร์ตที่ถูกต้องเปิดสำหรับการสื่อสาร ข้อผิดพลาดในการคอมไพล์แอสเซ็ต ตรวจสอบให้แน่ใจว่าคุณได้กำหนดค่าท่อส่งแอสเซ็ตของคุณอย่างถูกต้อง และไฟล์ javascript หรือ css ที่จำเป็นทั้งหมดรวมอยู่ในโครงการของคุณ นอกจากนี้ ให้แน่ใจว่าคุณได้ติดตั้งเครื่องมือสร้างที่จำเป็น (เช่น node js) ในภาพ docker ของคุณ หากการคอมไพล์แอสเซ็ตยังคงล้มเหลว ให้พิจารณาคอมไพล์แอสเซ็ตในเครื่องและรวมแอสเซ็ตที่คอมไพล์ล่วงหน้าในที่เก็บของคุณ ตัวแปรสภาพแวดล้อมไม่ได้ตั้งค่า ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าตัวแปรสภาพแวดล้อมที่จำเป็นทั้งหมดในการตั้งค่าคอนเทนเนอร์ back4app ของคุณอย่างถูกต้อง ซึ่งรวมถึงตัวแปรที่เกี่ยวข้องกับฐานข้อมูลของคุณ คีย์ api และข้อมูลที่ละเอียดอ่อนอื่นๆ ตรวจสอบให้แน่ใจว่าตัวแปรเหล่านี้ถูกนำไปใช้ในโค้ดแอปพลิเคชันของคุณอย่างถูกต้อง แอปพลิเคชันล่มหรือค้าง ตรวจสอบบันทึกแอปพลิเคชันที่จัดทำโดย back4app containers เพื่อตรวจสอบข้อผิดพลาดหรือปัญหาที่อาจทำให้แอปพลิเคชันของคุณล่มหรือค้าง อาจเกี่ยวข้องกับการดีบักโค้ดแอปพลิเคชันของคุณหรือปรับแต่งการกำหนดค่าของ docker หากแอปพลิเคชันของคุณประสบปัญหาด้านประสิทธิภาพ ให้พิจารณาปรับแต่งโค้ดของคุณหรือปรับขนาดทรัพยากรของคอนเทนเนอร์ 8\ ปรับขนาดแอปพลิเคชันของคุณ หากแอปพลิเคชัน rails ของคุณต้องการทรัพยากรมากขึ้นเพื่อให้ทำงานได้อย่างมีประสิทธิภาพ คุณสามารถปรับขนาด back4app containers ของคุณได้อย่างง่ายดายโดยการซื้อคอนเทนเนอร์ที่มีประสิทธิภาพมากขึ้นซึ่งมีการจัดสรร cpu และหน่วยความจำที่สูงขึ้น สิ่งนี้จะช่วยให้แอปพลิเคชันของคุณสามารถจัดการกับการเข้าชมที่เพิ่มขึ้นและมอบประสบการณ์ผู้ใช้ที่ดีขึ้น 9\ sample application for a reference implementation, you can access a template rails app deployed on back4app containers at the following link https //github com/templates back4app/containers python flask sample