やりたいこと及び問題点
Docker上のコンテナとしてJenkinsが立ち上がっています。
このJenkinsのジョブで[シェルの実行]内で実行ファイルを指定して起動させたいのですが、
実行すると次のエラーが吐き出されエラーとなりました。
[Jenkins_Test] $ /bin/sh /tmp/jenkins****.sh /tmp/jenkins****.sh: line 2: ./called_program: not found
一応[シェルの実行]のコードを載せます。
#!/bin/sh ./called_program
これを呼び出せるようにするには、どのようにすれば良いのでしょうか?
あるいは、どういう箇所に着目すれば良いでしょうか?
試していること
- ホストマシンから該当の実行ファイルを起動することを確認しています。
- Jenkinsコンテナに入って該当の実行ファイルを起動しようとすると、
次のエラーが出たのを確認しています。
bash: ./called_program: No such file or directory
[追記]
また、ジェンキンスジョブに書いたものと同等のシェルスクリプトを作成して実行した場合、
- ホストマシンからだと起動を確認
- コンテナからだとJenkinsジョブのコンソールに出力されたエラーと同じであることを確認
このようになりました。
[追記]
JenkinsコンテナのOSを確認したところ、Alpineであることが分かったため、
後述の『環境』にあるプログラムを linux-musl-x64 でビルドしコンテナから呼び出したところ、
下記のエラーが出ました。
error: Error loading shared library libintl.so.8: No such file or directory (needed by /var/jenkins_home/workspace/Jenkins_Test/publish/libcoreclr.so) Failed to bind to CoreCLR at '/var/jenkins_home/workspace/Jenkins_Test/publish/libcoreclr.so'
環境
- OS: ubuntu 18.04
- Docker: 右を参考に導入-> https://docs.docker.com/install/linux/docker-ce/ubuntu/
- Jenkins: 右を参考に導入-> https://qiita.com/kmdsbng/items/223c93d09bbd7816b8d5
- 実行したいプログラム:
Windows上で開発している.Net CoreプロジェクトをUbuntu向け(linux-x86)に自己完結型でパブリッシュしたもの
補足
Linux/Docker/Jenkins諸々初学者です。
「Linux触りたいけどなー。素人だからあれこれ入れてるうちによくわからなくなってくるからなー。
ん?Docker?これは便利そう。(すぐ破棄することができるから)
丁度今Jenkinsジョブを自分で作れるようにしたいからそこらへん取り巻きで勉強がてらやってみるかー。」
というきっかけで遊んでたら今に至りました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。