8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

以 jenkins 用户身份运行 doctl

relent95 2月前

133 0

我们有一个 Jenkins CI 服务器,在 Ubuntu 上运行。我可以以 root 身份登录,但 jenkins 用户正在运行管道。作为管道的一部分,我想将图像推送到数字海洋注册表。我可以

我们有一个在 Ubuntu 上运行的 Jenkins CI 服务器。我可以以 身份登录 root ,但 jenkins 用户正在运行管道。作为管道的一部分,我想将图像推送到数字海洋注册表。

如果我以用户身份运行,我可以成功验证、登录和推送 root ,但我无法让它以 jenkins 用户身份工作(作为管道的一部分)。 sudo -u jenkins doctl auth init 例如,如果我调用,它想要写入 /root/.config 文件,这当然是不允许的,因为存在权限问题。

无论如何,我希望能够 doctl 连接到 jenkins 用户而不是 root 用户运行。要么安装 doctl 命令给 jenkins 用户,要么强制使用用户的配置文件/文件夹 jenkins .

(您可能已经意识到,我并不是一名 Linux 专家。)

帖子版权声明 1、本帖标题:以 jenkins 用户身份运行 doctl
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由relent95在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我正在使用 WSL2 ubuntu linux 系统,并尝试在 Windows 上使用 Airflow在 Vscode 上操作我安装了 2.4.1 版本的 Airflow当我尝试时,我收到以下错误:Traceback (most recent call

    我正在使用 WSL2 ubuntu linux 系统,并尝试在 Windows 上使用 Airflow

    在 Vscode 上操作

    我安装的是2.4.1版本的Airflow

    当我尝试时,出现以下错误:

    Traceback (most recent call last):
      
    File "/home/stevenluk18/airflow/airflow_env/bin/airflow", line 5, in <module>
        
    from airflow.__main__ import main
      
    File "/home/stevenluk18/airflow/airflow_env/lib/python3.8/site-packages/airflow/__init__.py", line 34, in <module>
        
    from airflow import settings
      
    File "/home/stevenluk18/airflow/airflow_env/lib/python3.8/site-packages/airflow/settings.py", line 49, in <module>
        
    TIMEZONE = pendulum.tz.timezone('UTC')
    
    TypeError: 'module' object is not callable
    
    • 有什么问题?请帮忙!!!

    当我尝试时,我得到了 TypeError。我尝试创建 Linux Venv 并使用 venv/bin/activate 激活。我使用 pip 安装 apache-airflow,但仍然无法调用包函数。我使用了 pwd > 命令来定位我正在处理的文件但仍然不起作用。

    当我安装 Airflow 包时:python-nvd3、unicodecsv、google-re2。

    无法为 apache-airflow 中的这些包构建轮子。

    这会影响结果吗?

  • 我有下表:mysql> SHOW VARIABLES LIKE 'char%';+-----------------------------+----------------------------+| Variable_name | Value |+-------------------...

    我有下表:

    mysql> SHOW VARIABLES LIKE 'char%';
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | latin1                     |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | latin1                     |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.01 sec)
    

    我使用 JDBC 驱动程序。必须支持 utf8 的文本字段的表的创建方式如下:

    jdbcTemplate.execute(
    "CREATE TABLE IF NOT EXISTS users"+
    "(id BIGINT NOT NULL AUTO_INCREMENT,"+
      "name VARCHAR(45),"+
      "................."+
      "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
    

    在本地机器上,一切正常。但在 Ubuntu 服务器上,我得到的是 \'?????\',而不是 UTF-8 中的正常名称。如何修复它?该应用程序通过 Nginx 运行。也许这就是问题所在?

  • 我该从哪里开始呢?我目前正在 Unity 上制作一款多人游戏,使用 Netcode 来处理 Gameobjects。我确保在每次添加后检查在线功能,以确保它

    我该从哪里开始呢?我目前正在 Unity 上制作一款多人游戏,使用 Netcode 来处理 Gameobjects。我确保在每次添加后检查在线功能以确保它仍然有效,但在实现跟随每个玩家的摄像头后,它停止工作了。连接方式是通过三个按钮,主机、服务器和客户端,这些按钮是我通过代码设置的,是临时的。单击按钮后,主摄像头将被禁用,玩家会使用一个摄像头支架生成,该支架的子项是摄像头。此脚本由网络管理器保存。实现摄像头功能后,即使主机先进入,单击客户端按钮也不会让您进入游戏。我尝试使用 ParrelSync 克隆和构建对其进行测试,两者都与编辑器一起使用。最糟糕的是,我没有收到任何错误来引导我朝着正确的方向前进。在剥离代码并使用网络管理器按钮而不是我自己的按钮后,客户端确实加入了,但立即遇到了两个错误:

    /Runtime/Core/NetworkUpdateLoop.cs:208)[Netcode] NetworkBehaviour 索引 3 超出了 Player(Clone)的界限。服务器和客户端之间的 NetworkBehaviours 必须相同且顺序相同。UnityEngine.Debug:LogError (object)Unity.Netcode.NetworkLog:LogError (string) (at ./Library/PackageCache/ [email protected] /Runtime/Logging/NetworkLog.cs:34)Unity.Netcode.NetworkObject:GetNetworkBehaviourAtOrderIndex (uint16) (at ./Library/PackageCache/ /Runtime/Core/NetworkObject.cs:1199)Unity.Netcode.NetworkVariableDeltaMessage:Handle (Unity.Netcode.NetworkContext&) (at ./Library/PackageCache/ [email protected ] /Runtime/Messaging/Messages/NetworkVariableDeltaMessage.cs:134)Unity.Netcode.NetworkMessageManager:ReceiveMessage (Unity.Netcode.FastBufferReader、Unity.Netcode.NetworkContext&、Unity.Netcode.NetworkMessageManager)(位于 ./Library/PackageCache/ [email protected] /Runtime/Messaging/NetworkMessageManager.cs:564)Unity.Netcode.NetworkMessageManager:HandleMessage(Unity.Netcode.NetworkMessageHeader&、Unity.Netcode.FastBufferReader、ulong、single、int)(位于 ./Library/PackageCache/ [email protected] /Runtime/Messaging/NetworkMessageManager.cs:432)Unity.Netcode.NetworkMessageManager:ProcessIncomingMessageQueue()(位于 ./Library/PackageCache/ [email protected] /Runtime/Messaging/NetworkMessageManager.cs:458)Unity.Netcode.NetworkManager:NetworkUpdate(Unity.Netcode.NetworkUpdateStage)(位于 ./Library/PackageCache/ [email protected] /Runtime/Core/NetworkManager.cs:42)Unity.Netcode.NetworkUpdateLoop:RunNetworkUpdateStage (Unity.Netcode.NetworkUpdateStage) (位于 ./Library/PackageCache/ [email protected] /Runtime/Core/NetworkUpdateLoop.cs:185)Unity.Netcode.NetworkUpdateLoop/NetworkEarlyUpdate/<>c:b__0_0 () (位于 ./Library/PackageCache/ [email protected]

    和:

    /Runtime/Core/NetworkUpdateLoop.cs:208)[Netcode] 收到不存在行为的网络变量增量消息。NetworkObjectId:2,NetworkBehaviourIndex:3UnityEngine.Debug:LogWarning(对象)Unity.Netcode.NetworkLog:LogWarning(字符串)(位于 ./Library/PackageCache/ [email protected] /Runtime/Logging/NetworkLog.cs:28)Unity.Netcode.NetworkVariableDeltaMessage:Handle(Unity.Netcode.NetworkContext&)(位于 ./Library/PackageCache/ [email protected] /Runtime/Messaging/Messages/NetworkVariableDeltaMessage.cs:140)Unity.Netcode.NetworkMessageManager:ReceiveMessage (Unity.Netcode.FastBufferReader、Unity.Netcode.NetworkContext&、Unity.Netcode.NetworkMessageManager)(位于 ./Library/PackageCache/ [email protected] /Runtime/Messaging/NetworkMessageManager.cs:564)Unity.Netcode.NetworkMessageManager:HandleMessage(Unity.Netcode.NetworkMessageHeader&、Unity.Netcode.FastBufferReader、ulong、single、int)(位于 ./Library/PackageCache/ [email protected] /Runtime/Messaging/NetworkMessageManager.cs:432)Unity.Netcode.NetworkMessageManager:ProcessIncomingMessageQueue()(位于 ./Library/PackageCache/ [email protected] /Runtime/Messaging/NetworkMessageManager.cs:458)Unity.Netcode.NetworkManager:NetworkUpdate(Unity.Netcode.NetworkUpdateStage)(位于 ./Library/PackageCache/ [email protected] /Runtime/Core/NetworkManager.cs:42)Unity.Netcode.NetworkUpdateLoop:RunNetworkUpdateStage (Unity.Netcode.NetworkUpdateStage) (位于 ./Library/PackageCache/ [email protected] /Runtime/Core/NetworkUpdateLoop.cs:185)Unity.Netcode.NetworkUpdateLoop/NetworkEarlyUpdate/<>c:b__0_0 () (位于 ./Library/PackageCache/ [email protected]

    我还应该提到,虽然由于这些错误,客户端无法控制,但它仍然可以看到主机正在做什么,因为主机工作正常。 主编辑器和克隆尝试建立连接,编辑器是主机,克隆是客户端

    现在我有一些线索,我需要你的帮助,因为我根本不明白这些错误是什么意思。这是代码,请记住,其中很多都是注释,我试图将代码简化到足够简单的状态,这样我就会在控制台中收到错误,或者它可以解决:网络按钮(完全禁用,附加到网络管理器):

    using System.Collections;
    using System.Collections.Generic;
    using Unity.Netcode;
    using UnityEngine;
    using Unity.Netcode.Transports.UTP;
    
    public class NetworkButtons : MonoBehaviour
    {
        public GameObject mainCam;
    
        void OnGUI()
        {
            GUILayout.BeginArea(new Rect(10, 10, 300, 300));
            if (!NetworkManager.Singleton.IsClient && !NetworkManager.Singleton.IsServer)
            {
                if (GUILayout.Button("Host")) {NetworkManager.Singleton.StartHost(); mainCam.SetActive(false);}
                if (GUILayout.Button("Server")) {NetworkManager.Singleton.StartServer(); mainCam.SetActive(false);}
                if (GUILayout.Button("Client")) {NetworkManager.Singleton.StartClient(); mainCam.SetActive(false);}
            }
            GUILayout.EndArea();
        }
    }
    

    主播放器脚本(还有允许跳跃的代码,如果您需要请告诉我):

    using System.Collections;
    using System.Collections.Generic;
    using Unity.Netcode;
    using UnityEngine;
    
    public class Player : NetworkBehaviour
    {
        private Rigidbody playerRb;
        //public GameObject camHolderPrfb;
        //public GameObject camHolder;
        public float speed;
        public float jumpForce;
        public float gravityMod;
        private bool onGround = true;
    
        void Start()
        {
            //camHolder = Instantiate(camHolderPrfb, transform.position, Quaternion.identity);
            playerRb = GetComponent<Rigidbody>();
            Physics.gravity *= gravityMod;
        }
    
        void Update()
        {
            //Makes sure player can only control its character
            if (!IsOwner) {return;} 
            //Calculates player movement
            float forwInput = Input.GetAxis("Vertical");
            float horzInput = Input.GetAxis("Horizontal");
            Vector3 direction = /*camHolder.transform.forward*/Vector3.forward * forwInput + /*camHolder.transform.right*/Vector3.right * horzInput;
            //Applies movement to player
            if (direction.magnitude > 1) {direction.Normalize();}
            playerRb.AddForce(direction * speed);
    

    摄像机控制器(完全禁用,但也进行了注释,因为它依赖于主播放器脚本中的一个变量,我也对该变量进行了注释,并附加到播放器)

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.SceneManagement;
    using Unity.Netcode;
    
    public class CamController : NetworkBehaviour
    {
    
        /*public float rotationSpeed;
        public float lerpSpeed;
        public GameObject camHolder;
        private Camera playerCamComp;
        private GameObject playerCam;
        public Player PlayerScr;
    
        void Start() 
        {
            camHolder = PlayerScr.camHolder;
            playerCamComp = camHolder.GetComponentInChildren<Camera>();
            playerCam = playerCamComp.gameObject;
        }
    
        void FixedUpdate()
        {
            //Camera is rotatable with left and right keys
            float camInput = Input.GetAxis("MoveCam");
            camHolder.transform.Rotate(Vector3.up, camInput * Time.deltaTime * rotationSpeed);
            //Camera moves and looks at the player
            camHolder.transform.position = Vector3.Lerp(camHolder.transform.position, transform.position, lerpSpeed * Time.deltaTime);
            playerCam.transform.LookAt(this.transform);
        }*/
    }
    

    玩家网络(实际上并未使用,因为玩家除了位置和旋转之外没有其他需要同步的变量,对此我有网络变换,但以后会很有用):

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using Unity.Netcode;
    using Unity.Netcode.Transports.UTP;
    
    [System.Serializable]
    public struct PlayerNetworkState : INetworkSerializable
    {
        public Vector3 Position;
        public Vector3 Rotation;
    
        public void NetworkSerialize<T>(BufferSerializer<T> serializer) where T : IReaderWriter
        {
            serializer.SerializeValue(ref Position);
            serializer.SerializeValue(ref Rotation);
        }
    }
    
    
    public class PlayerNetwork : NetworkBehaviour
    {
        [SerializeField] private bool usingServerAuth;
        private NetworkVariable<PlayerNetworkState> playerState;
        private Rigidbody playerRb;
    
        private void Awake()
        {
            playerRb = GetComponent<Rigidbody>();
            var permission = usingServerAuth ? NetworkVariableWritePermission.Server : NetworkVariableWritePermission.Owner;
            playerState = new NetworkVariable<PlayerNetworkState>(new PlayerNetworkState {Position = Vector3.zero, Rotation = Vector3.zero}, NetworkVariableReadPermission.Everyone, permission);
        }
    
        public override void OnNetworkSpawn()
        {
            if (!IsOwner) {
                Destroy(transform.GetComponent<Player>());
                Destroy(transform.GetComponent<CamController>());
            }
        } 
    
        private void Update()
        {
            if (IsOwner) TransmitState();
            else ConsumeState();
        }
    
        #region Transmit State
    
        private void TransmitState()
        {
            var state = new PlayerNetworkState
            {
                Position = playerRb.position,
                Rotation = transform.rotation.eulerAngles
            };
    
            if (IsServer || !usingServerAuth)
            {
                playerState.Value = state;
            }
            else
            {
                TransmitStateServerRpc(state);
            }
        }
    
        [ServerRpc(RequireOwnership = false)]
        private void TransmitStateServerRpc(PlayerNetworkState state)
        {
            playerState.Value = state;
        }
    
        #endregion
    
        #region Consume State
    
        private void ConsumeState()
        {
            transform.position = playerState.Value.Position;
            transform.rotation = Quaternion.Euler(playerState.Value.Rotation);
        }
    
        #endregion
    }
    

    我没有经验,这是我的第一个项目,所以它可能没有我想象的那么复杂,但我已经卡了将近一个星期了。如果你能解决这个问题,我将永远感激不尽!

  • 我正在为 WordPress 网站开发自定义聊天机器人。我使用 python-fastapi 构建了聊天机器人后端,并通过 uvicorn app:app --host 0.0.0.0 --port 8000 在 ubuntu24.04 实例上运行它。一切...

    我正在为 WordPress 网站开发自定义聊天机器人。我使用 python-fastapi 构建了聊天机器人后端,并通过 uvicorn app:app --host 0.0.0.0 --port 8000 ubuntu24.04 实例运行它。

    当我使用 Postman 测试时,一切正常。但是,我需要在我的 WordPress 网站上调用聊天机器人后端。

    我不了解 WordPress 插件,因此我为 WordPress 网站开发了一个 HTML-CSS-JS 嵌入代码。我尝试在 JS 代码中访问 fastapi 后端。

    但是,我无法访问它,因为 WP 网站采用 HTTP 协议,而 Ubuntu 实例采用 HTTPS 协议。

    我想通过 https 协议访问 fastapi 后端。

    我尝试过的:

    • p7

      root@ip-172-31-53-161:/home/ubuntu# sudo systemctl start nginxJob for nginx.service failed because the control process exited with error code.See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details.
    • p8

    我是 AWS 和 Nginx 的新手。请帮助我!

  • 我对可编写脚本的对象感到很困惑。我必须确保每个按钮都实例化一个不同的对象,但我不明白为什么我也必须在第二个脚本中重新创建它们。我知道...

    我对脚本化对象相当困惑。我必须确保每个按钮实例化一个不同的对象,但我不明白为什么我也必须在第二个脚本中重新创建它们。我不明白其中的逻辑

    这就是我创建可编写脚本的对象的方式:

    [CreateAssetMenu(fileName = "Show Auto", menuName = "Auto")]   //crea una voce quando vai negli asset (t.Dx->create->Nemico)
    public class AutoInfo : ScriptableObject
    {
        public string nomeAuto;
        public GameObject prefabAuto;
        public string descrizioneAuto;
        public string prezzo;
    }
    

    这里我创建了按钮的功能。

    public class CliccoBottone : MonoBehaviour
    {
        public AutoInfo[] auto;
        public TMP_Text info;
        public TMP_Text nome;
        public TMP_Text prezzo;
        GameObject macchina;
        
        public void InstanziaAuto(int numero)
        {
            Destroy(macchina);
    
            macchina = Instantiate (auto[numero].prefabAuto);
            macchina.transform.position= new Vector3( 0,0,0);
    
            info.text = (auto[numero].descrizioneAuto);
            nome.text = (auto[numero].nomeAuto);
            prezzo.text = (auto[numero].prezzo);
    
        }
    }
    

    为什么如果我创建:public GameObject prefabAuto 我必须在第二个脚本中创建-GameObject macchina?

  • 将条目添加到文件 /etc/mysql/my.cnf

    [client]
    default-character-set = utf8mb4
    
    [mysql]
    default-character-set = utf8mb4
    
    [mysqld]
    character-set-server = utf8mb4
    

    这对我有用。并且我通过终端创建了数据库:

    CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    

    这是不必要的 -> \'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4\' 因此,工作表如下所示:

    mysql> SHOW VARIABLES LIKE 'char%';
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8mb4                    |
    | character_set_connection | utf8mb4                    |
    | character_set_database   | utf8mb4                    |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8mb4                    |
    | character_set_server     | utf8mb4                    |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.00 sec)
    
  • 使用网络共享时,相机会通过代码跟随项目位置,而不是成为其层次结构的一部分。至于您的错误,没有足够的信息来过度推测。但他们建议也许手动添加/删除代码中的组件,这样服务器对象和客户端之间的情况就不一样了。

  • 无论如何,这无关紧要,但我不能,因为玩家是一个滚动的球,因此如果连接上它,相机就会疯狂旋转

  • 引用 10

    您好,欢迎来到 Stack Overflow。请编辑您的问题,包括一些背景信息,说明您的问题、您要做什么以及您遇到的困难。目前,这对其他人来说没有多大意义,我们无法回答您的问题。

  • W.B. 2月前 0 只看Ta
    引用 11

    你不需要 sudo -u jenkins ——你的 Jenkins 已经以用户身份运行 jenkins 。一切正常

    withCredentials([string(credentialsId: 'DO_API_TOKEN', variable: 'TOKEN')]) {
      sh script: '''
        doctl auth init --access-token "$TOKEN"
      '''
    }
    

    显然,您需要 DO_API_TOKEN 先将您的 Jenkins 凭证添加为“秘密文本”。

返回
作者最近主题: