Làm cách nào để đặt biến môi trường trước khi chạy tập lệnh bên trong hook / install?


16

Tôi tạo ra một sự quyến rũ đơn giản để có được ứng dụng web symfony2 của tôi từ git và triển khai nó trên ec2.

Sau khi nhận được nguồn từ git, tôi muốn chạy trình soạn thảo để giải quyết các phụ thuộc nhưng tôi tiếp tục gặp lỗi này:

INFO juju context.go:221 worker/uniter: HOOK   The HOME or COMPOSER_HOME environment variable must be set for composer to run correctly

Tôi đang chạy trình soạn thảo bằng lệnh bên dưới trong tập lệnh hook / install của tôi

juju-log "Running composer"
/usr/bin/php composer.phar install

Tôi cũng đã thử

juju-log "Running composer"
COMPOSER_HOME=${app_dir};/bin/bash -c "/usr/bin/php composer.phar install"

Làm cách nào tôi có thể đặt HOME hoặc COMPOSER_HOME để lệnh này có thể được thực thi?


Vui lòng liên hệ với tôi (liên kết trong trang hồ sơ của tôi), tôi rất muốn làm việc với bạn để có được quy trình làm việc của symfony trong Ubuntu!
Jorge Castro

Chắc chắn @JorgeCastro, tôi sẽ gửi email cho bạn sau khi sự quyến rũ của tôi hoàn tất.
Amit

Câu trả lời:


20

HOME không được đặt trong các móc Juju, chỉ có một vài biến môi trường.

Bạn có thể chạy

COMPOSER_HOME="/path/you/want/to/be/home" php composer.phar install

Nó sẽ đặt biến môi trường trước khi thực hiện php.


Cảm ơn Marco. Điều đó đã làm việc. Tôi đã cố gắng tương tự nhưng đã cho; trước php, điều đó cũng nên làm việc COMPOSER_HOME = $ {app_dir}; / usr / bin / php composer.phar cài đặt
Amit

4
Không, ;sẽ không biến COMPOSER_HOME thành biến môi trường, chỉ là biến, Bạn sẽ cần export COMPOSER_HOME=${app_dir};xuất làm biến nó thành biến môi trường. Những gì tôi đã làm chỉ là cài đặt nó như là một biến môi trường cho chỉ lệnh đó.
Marco Ceppi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.