ฉันกำลังพยายามตั้งค่างาน cron บน Openshift เนื่องจากการนำเข้าอีเมลในแอปพลิเคชัน Redmine ดังนั้นฉันจึงเตรียมสคริปต์อย่างละเอียดดังนี้:
#!/bin/bash
rake RAILS_ENV=production -f ${OPENSHIFT_REPO_DIR}/Rakefile redmine:email:receive_imap host=imap.googlemail.com port=993 ssl=1 [email protected] password=yyy ...
มันทำงานโดยไม่มีปัญหาเมื่อเปิดใช้งานด้วยมือบนการเชื่อมต่อ ssh เมื่อรันโดย cron จะไม่พบคราดแทน จากการดีบัก ฉันพบว่าเส้นทางไม่เหมือนกับเชลล์การเข้าสู่ระบบ และแม้ว่าฉันจะใช้เส้นทางแบบเต็มสำหรับคราด แต่ทับทิมที่พบคือเวอร์ชัน 1.8 (ไม่ใช่ 1.9 ตามคาร์ทริดจ์) และเมื่อใดก็ตามที่ฉันตั้งค่าเส้นทางเดียวกันกับเชลล์ก็จะไม่พบ libruby-1.9
ทำตามคำแนะนำอื่น ๆ ฉันพยายามเพิ่มบรรทัดต่อไปนี้แทนการตั้งค่า PATH ที่กำหนดเอง:
source /usr/bin/rhcsh
แต่ก็ยังหาคราดไม่พบ ฉันพยายามใช้ Bundle exec ด้วย
วิธีที่ถูกต้องในการตั้งค่าสภาพแวดล้อมสำหรับ cron บน Openshift เพื่อให้สามารถทำงานได้เหมือนเชลล์ล็อกอินคืออะไร
$PATH
คุณควรอ้างอิงrake
ที่คุณต้องการอย่างแน่นอน นี่เป็นมาตรการรักษาความปลอดภัย ไม่เช่นนั้นการเรียกใช้โค้ดสิทธิพิเศษจะง่ายเกินไป วิธีนั้นจะไม่มีปัญหาเรื่องเส้นทางเช่นกัน - person Patru   schedule 27.03.2014