Rah*_*hul 13 python pip jenkins docker
那是我的詹金斯文件.
pipeline {
agent none
stages {
stage('Build') {
agent {
docker {
image 'python:3-alpine'
}
}
steps {
sh 'pip install --user -r requirements.txt'
sh 'python WebChecker.py'
}
post {
always {
junit 'output.xml'
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我在詹金斯运行时,我得到了跟随
[urltester] Running shell script
+ pip install --user -r requirements.txt
The directory '/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting beautifulsoup4==4.6.0 (from -r requirements.txt (line 1))
Downloading https://files.pythonhosted.org/packages/9e/d4/10f46e5cfac773e22707237bfcd51bbffeaf0a576b0a847ec7ab15bd7ace/beautifulsoup4-4.6.0-py3-none-any.whl (86kB)
Collecting requests==2.18.4 (from -r requirements.txt (line 2))
Downloading https://files.pythonhosted.org/packages/49/df/50aa1999ab9bde74656c2919d9c0c085fd2b3775fd3eca826012bef76d8c/requests-2.18.4-py2.py3-none-any.whl (88kB)
Collecting junit-xml==1.8 (from -r requirements.txt (line 3))
Downloading https://files.pythonhosted.org/packages/a6/2a/f8d5aab80bb31fcc789d0f2b34b49f08bd6121cd8798d2e37f416df2b9f8/junit-xml-1.8.tar.gz
Collecting urllib3<1.23,>=1.21.1 (from requests==2.18.4->-r requirements.txt (line 2))
Downloading https://files.pythonhosted.org/packages/63/cb/6965947c13a94236f6d4b8223e21beb4d576dc72e8130bd7880f600839b8/urllib3-1.22-py2.py3-none-any.whl (132kB)
Collecting idna<2.7,>=2.5 (from requests==2.18.4->-r requirements.txt (line 2))
Downloading https://files.pythonhosted.org/packages/27/cc/6dd9a3869f15c2edfab863b992838277279ce92663d334df9ecf5106f5c6/idna-2.6-py2.py3-none-any.whl (56kB)
Collecting certifi>=2017.4.17 (from requests==2.18.4->-r requirements.txt (line 2))
Downloading https://files.pythonhosted.org/packages/7c/e6/92ad559b7192d846975fc916b65f667c7b8c3a32bea7372340bfe9a15fa5/certifi-2018.4.16-py2.py3-none-any.whl (150kB)
Collecting chardet<3.1.0,>=3.0.2 (from requests==2.18.4->-r requirements.txt (line 2))
Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
Collecting six (from junit-xml==1.8->-r requirements.txt (line 3))
Downloading https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Installing collected packages: beautifulsoup4, urllib3, idna, certifi, chardet, requests, six, junit-xml
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/.local'
Check the permissions.
script returned exit code 1
Run Code Online (Sandbox Code Playgroud)
那么我做sudo pip install ....
我收到以下错误:
[urltester] Running shell script
+ sudo python -m pip install --user -r requirements.txt
/Users/me/.jenkins/workspace/urltester@tmp/durable-e36d9731/script.sh: line 1: sudo: not found
script returned exit code 127
Run Code Online (Sandbox Code Playgroud)
然后我删除了sudo并尝试使用虚拟环境:
pipeline {
agent none
stages {
stage('Build') {
agent {
docker {
image 'python:3-alpine'
}
}
steps {
sh 'virtualenv venv --distribute'
sh 'source venv/bin/activate '
sh 'pip install --user -r requirements.txt'
sh 'python WebChecker.py'
}
post {
always {
junit 'output.xml'
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试sudo时,我得到了同样的东西,但这次没有找到virtualenv.
我的最终目标是能够运行我的python脚本.这个python脚本将在同一目录中生成一个xml文件.然后Jenkins应该读取这个xml文件.我尝试过使用Docker,但没有达到目的.所以我该怎么做?
小智 9
正如tftd所写,将HOME更改为可写目录,如:
pipeline {
agent none
stages {
stage('Build') {
agent {
docker {
image 'python:3-alpine'
}
}
steps {
withEnv(["HOME=${env.WORKSPACE}"]) {
sh 'pip install --user -r requirements.txt'
sh 'python WebChecker.py'
}
}
post {
always {
junit 'output.xml'
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 1
您需要将 virtualenv 添加到 PATH 变量。
如果您使用安装它pip install virtualenv,它将位于pythonX.X/Lib/site-packages/
Sudo还应该添加到 PATH 变量中。
第一个代码片段中的错误是因为您没有写入'/.local'. 尝试以管理员身份运行
| 归档时间: |
|
| 查看次数: |
4043 次 |
| 最近记录: |