在 macOS 上更改 Jenkins 端口
Posted
技术标签:
【中文标题】在 macOS 上更改 Jenkins 端口【英文标题】:Change Jenkins port on macOS 【发布时间】:2011-10-31 15:30:32 【问题描述】:我想知道如何更改 Jenkins 的默认端口 8080。使用 linux 或 windows,只需使用配置文件即可。但是 Jenkins 的 Mac 配置文件看起来和其他的完全不同。
当然可以在启动服务器时传递 --httpPort 参数,但我想在配置文件中执行此操作。
有这样的选择吗?
PS:通过 apache 传递 Jenkins 实例可以解决问题,但我想更改 Jenkins 端口。
谢谢!
【问题讨论】:
虽然这有点晚了:您应该阅读 Jenkins 安装程序的文档。您可以在 /Library/Documentation/Jenkins 中找到它(除非您自定义安装并选择不安装文档。) 【参考方案1】:看起来默认方式是:
#添加默认参数 - 这将编辑 /Library/Preferences/org.jenkins-ci.plist
sudo 默认写入 /Library/Preferences/org.jenkins-ci httpPort 7070
#停止
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
#开始
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
【讨论】:
这行得通!不过,第一个命令也需要 sudo。否则,我会收到“无法写入域 org.jenkins-ci;正在退出”。 这应该被标记为正确的问题。另一个太乱了。 很酷,但是几个安装呢?还有另一个答案处理这个问题。詹金斯仍然需要以一种更清洁的方式来做这件事。 特殊答案。请注意,如果您收到/Library/LaunchAgents/org.jenkins-ci.plist: Could not find specified service
,您可以尝试在没有sudo
的情况下执行停止/启动命令。
感谢您。我知道詹金斯,但我是 Mac 上詹金斯的新手。我同意这应该是公认的答案。【参考方案2】:
在macOS上修改Jenkins端口之前,一定要注意Jenkins的安装方式。
这里如果你想处理ios项目构建,我建议你通过'Homebrew'安装Jenkins,因为使用.pkg
安装的方式可能会遇到一些错误,很难解决问题。
我已经通过 brew 命令安装了 Jenkins LTS:
brew install jenkins-lts
所以我的 Jenkins plist 文件在这里:
/usr/local/Cellar/jenkins-lts/2.121.2/homebrew.mxcl.jenkins-lts.plist
您可以将httpPort
的值从默认的8080
修改为其他值,然后保存文件。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>homebrew.mxcl.jenkins-lts</string>
<key>ProgramArguments</key>
<array>
<string>/usr/libexec/java_home</string>
<string>-v</string>
<string>1.8</string>
<string>--exec</string>
<string>java</string>
<string>-Dmail.smtp.starttls.enable=true</string>
<string>-jar</string>
<string>/usr/local/opt/jenkins-lts/libexec/jenkins.war</string>
<string>--httpListenAddress=127.0.0.1</string>
<string>--httpPort=8383</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
sudo launchctl unload
命令对你不起作用。你必须尝试这些命令来重新启动你的 Jenkins 并使端口修改工作。
brew services stop jenkins-lts
brew services start jenkins-lts
ifeegoo:~ ifeegoo$ brew services stop jenkins-lts
Stopping `jenkins-lts`... (might take a while)
==> Successfully stopped `jenkins-lts` (label: homebrew.mxcl.jenkins-lts)
ifeegoo:~ ifeegoo$ brew services start jenkins-lts
==> Successfully started `jenkins-lts` (label: homebrew.mxcl.jenkins-lts)
注意:如果你安装了 Jenkins LTS,一定要注意你的命令必须是jenkins-lts
,而不是jenkins
。
【讨论】:
如果您导航到 /usr/local/opt/jenkins-lts 或您安装的任何版本的 jenkins,这也有效。我使用命令 'sudo nano' 来确保我拥有该文件的编辑权限。 鉴于 jenkins 现在建议使用 homebrew 安装在 macOS 上,这绝对是要走的路。超级容易。修改homebrew.mxcl.jenkins.plist
(先备份),运行brew services restart jenkins
。完成。
非常感谢!使用该 plist 配置文件,我终于让 Jenkins 使用 .local
或 IP 地址通过更改为 --httpListenAddress=0.0.0.0
来回答本地和本地网络请求 :)
如果你不精通vim/vi/nano,无法通过Finder找到,可以使用BBEdit的“Open file from path...”功能来编辑上面的文件(在你从终端扣除实际路径)。【参考方案3】:
我会引导你完成它:
cd /Applications/Jenkins
sudo vi winstone.properties
将httpPort=9999
添加到文件中。要查看您可以输入的所有选项,请输入java -jar jenkins.war --help
从/Applications/Jenkins
运行java -jar jenkins.war
。您的端口将被更改。 jenkins.war
默认从./winstone.properties
获取配置选项。
Andrew-Finnells-MacBook-Pro:Jenkins afinnell$ pwd
/Applications/Jenkins
Andrew-Finnells-MacBook-Pro:Jenkins afinnell$ ls -al
total 87928
drwxr-xr-x 4 root wheel 136 Aug 21 12:32 .
drwxrwxr-x+ 83 root admin 2822 Aug 21 12:05 ..
-rwxr-xr-x 1 root wheel 45014470 Aug 19 13:14 jenkins.war
-rw-r--r-- 1 root wheel 14 Aug 21 12:32 winstone.properties
Andrew-Finnells-MacBook-Pro:Jenkins afinnell$ sudo cat winstone.properties
httpPort=9494
Andrew-Finnells-MacBook-Pro:Jenkins afinnell$ java -jar jenkins.war
Running from: /Applications/Jenkins/jenkins.war
webroot: $user.home/.jenkins
[Winstone 2011/08/21 12:33:19] - Beginning extraction from war file
Jenkins home directory: /Users/afinnell/.jenkins found at: $user.home/.jenkins
[Winstone 2011/08/21 12:33:21] - HTTP Listener started: port=9494
【讨论】:
【参考方案4】:这对我将端口更改为 7070 或其他端口很有用。
sudo defaults write /Library/Preferences/org.jenkins-ci httpPort 7070
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
More info about this
【讨论】:
这是最简单和最好的答案。这对我有用【参考方案5】:我已经使用 Brew 在我的 Mac OS High Sierra 上安装了 Jenkins。
请按以下步骤操作:
-
您必须将端口更改为以下文件:
/usr/local/Cellar/jenkins/2.x.x/homebrew.mxcl.jenkins.plist
分配任何空闲端口,例如 7070 或您想要的任何数字。[如果您有静态 IP,那么您可以分配端口 80(HTTP)]
--httpPort=7070
您还需要重新启动 Jenkins 服务器。使用以下 brew service 命令:
$ brew services stop jenkins
$ brew services 启动 jenkins
就是这样!
【讨论】:
这对我来说是解决方案,尤其是因为 /Library/Preferences/org.jenkins-ci 对我来说不存在。我认为是因为 OSX 的新安全模型 (>= High Sierra) 另外,如果你不精通vim/vi/nano,无法通过Finder找到,可以使用BBEdit的“Open file from path...”功能来编辑上述文件(从终端扣除实际路径后)。 请注意,如果您安装了jenkins-lts
,则需要直接引用它,而不仅仅是jenkins
。这既适用于存储配置文件的位置,也适用于重启服务时的名称【参考方案6】:
只要在终端写下如下命令:
sudo defaults write /Library/Preferences/org.jenkins-ci.plist httpPort 9999
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
应该可以解决的。
【讨论】:
【参考方案7】:另一个解决方案是在不同的 HTTP 端口(即 7070 和 7071)上运行两个 Jenkins 守护程序:Multiple Jenkins daemons on different HTTP ports (Mac OS X)
【讨论】:
以上是关于在 macOS 上更改 Jenkins 端口的主要内容,如果未能解决你的问题,请参考以下文章