Запустите Python 2.7 по умолчанию в пользовательской службе Dotcloud.

Мне нужно сделать Python 2.7 версией Python по умолчанию для запуска сервера сборки Jenkins. Я пытаюсь использовать python_version для этого, но Python 2.6 остается версией по умолчанию. Я, наверное, упускаю что-то очень простое. Какие-либо предложения?

dotcloud.yml

jenkins:
  type: custom
  buildscript: jenkins/builder
  ports:
    www: http
  config:
    python_version: v2.7
  processes: 
    sshagent: ssh-agent /bin/bash
    jenkins: ~/run
db:
  type: postgresql

строитель

#!/bin/bash                                                                                                                                                                                                                                   
if [ -f ~/jenkins.war ]
then
    echo 'Found jenkins installation.'
else
    echo 'Installing jenkins.'
    wget -O ~/jenkins.war http://mirrors.jenkins-ci.org/war/latest/jenkins.war
fi
echo 'Installing dotCloud scaffolding.'
cp -a jenkins/. ~

echo 'Setting up SSH.'
mkdir -p ~/.ssh
cp jenkins_id ~/.ssh/id_rsa
chmod 0600 ~/.ssh/id_rsa
ssh-keygen -R bitbucket.org
ssh-keyscan -H bitbucket.org >> ~/.ssh/known_hosts

person acjay    schedule 25.02.2013    source источник
comment
Можете ли вы опубликовать свой скрипт сборки? Обычно python_version недоступен в пользовательской службе, если вы не добавите его в свой скрипт сборки.   -  person Ken Cochrane    schedule 25.02.2013
comment
@KenCochrane Только что добавил скрипт сборки. Я видел ваш github.com/kencochrane/python-on -dotcloud/blob/master/python/ проект раньше, но не подумал проверить скрипт сборки. Но я проверил это после того, как вы упомянули сценарий сборки, и я знаю, к чему вы клоните. Спасибо за поднятую голову.   -  person acjay    schedule 25.02.2013


Ответы (1)


Я до сих пор не уверен, почему мой файл сборки не решил проблему, но мне удалось обойти ее, используя параметр --python=/usr/bin/python2.7 для virtualenv в моем сценарии сборки Jenkins.

person acjay    schedule 25.02.2013
comment
Это имеет смысл, потому что если вы не передадите версию --python в VE, тогда она будет использовать версию python по умолчанию для пользовательской службы, которая равна 2.6.x . Параметр конфигурации, который вы используете в dotcloud.yml, не работает в пользовательской службе из коробки, вам нужно добавить некоторый код в ваш скрипт сборки, чтобы принять это значение и соответствующим образом изменить версию Python по умолчанию. То, что вы здесь делаете, кажется разумным, так что если это сработает для вас, то отлично. - person Ken Cochrane; 25.02.2013