docker build したときの出力がなんかいい感じにまとめられてコンパクトになりましたね。
でも、RUN した出力を知りたいんじゃ!ってこともあります。
そんなときは docker build --progress=plain で OK
docker build したときの出力がなんかいい感じにまとめられてコンパクトになりましたね。
でも、RUN した出力を知りたいんじゃ!ってこともあります。
そんなときは docker build --progress=plain で OK
最近 Wandbox のコンパイラー環境を作成する wandbox-builder に PR 投げまくっており、その際のテスト環境構築で詰まったところを備忘録としてメモしておく。
なお、本流にマージしても問題ないだろうと思う部分は PR を出しています。
https://github.com/srz-zumix/wandbox-builder/pull/1/files#diff-39e78c9920d894556bc58bc9693d6357a2737275ce6c2ac89198d8caed4e3c64
Wandbox の更新に追従が必要です。
.session.key と db ファイルはテスト環境のものを参照するようにし、それらのファイルは追加・作成するように変更しています。
https://github.com/srz-zumix/wandbox-builder/pull/1/files#diff-8339ab6ea29831802ca594668bddeb7e22d576a0cee4bb6a5492cb104492c98f
Wandbox で ip 制限がかかるようになったのですが、テスト環境からテストスクリプトを実行した際に「 [warning] [kennel.cpp:409] X-Real-IP is empty」となり、失敗していました。
ヘッダに「X-Real-IP」を追加して回避しました。
(これが正攻法なのかはわからないです)
こちらは筆者の実行環境が macOS なのが関係してるかもしれません。
マウントしたパスへの setuid が以下のように失敗するようなので、cattleshed の設定で uids オプションを削除するようにしました。
「cmake-head: {u'status': u'1', u'compiler_error': u'setuid: Operation not permitted\n', u'compiler_message': u'setuid: Operation not permitted\n'}」
https://github.com/srz-zumix/wandbox-builder/pull/2/files
以上、Wandbox に言語やコンパイラバージョンを追加したい場合の参考になれば幸いです。
※この記事は C++ Advent Calendar 2020 一日目の記事です。
C++20 で Concepts が導入されました。
コンセプト - cpprefjp C++日本語リファレンス
こういうこと?https://t.co/agPHVeBIV9
— いなむのみたまのかみ🍹☄️🐉🌽☃ (@mitama_rs) December 24, 2019
namespace printer_internal
{
template<typename Elem, typename Traits, typename T>
::std::basic_ostream<Elem, Traits>& operator << (::std::basic_ostream<Elem, Traits>& os, const T&)
{
return os << "unknown";
}
}
// 解決順序
// foo::operator <<
// ::operator <<
// ::printer_internal::operator <<
template<typename T>
void print(const T& val)
{
using namespace ::printer_internal;
::std::cout << val << ::std::endl;
}
特に懸念されていたのは CI サービスでの制限です。
DockerHub にログインしていない場合は IP に対して制限がかかるため、利用者の多いサービスではあっという間に上限越えて、制限がかかってしまうことが予想されました。
これに対し、すでに(期限付きではありますが)制限を受けないようにする交渉が完了しているサービスもあります。
DockerHub による2020/11からのコンテナイメージ Pull 回数制限のCircleCIへの影響 - Build Environment - CircleCI Discuss
ある程度猶予があるかもしれないですが…
何れにせよ、今後 DockerHub からイメージを pull して CI を回す場合は、事前に DockerHub へのログインをするようにパイプラインを更新しておくのが良さそうです。
それらへの対応方法についても、記事冒頭のドキュメントからリンクが貼られていたり、各 CI サービスから案内が出ていると思います。
筆者が開発している C++ テスティングフレームワークの iutest はめちゃくちゃたくさん CI サービスを使っているので(Docker 関係ないものもあるので全部ではないが)絶賛対応中です。
対応方法はログインするだけなんですが、各サービスやり方が異なるのでここでは対応方法は省略します。
一応、状況はこちらの issue で確認できます。
https://github.com/srz-zumix/iutest/issues/519
https://t.co/E8DUTOMi4M
— ずみっくす@あつまれCIサービス (@srz_zumix) October 23, 2020
DockerHub の pull 制限回避のためのログイン対応中。
CI サービス多用してるので大変(docker 使ってないものも多いけど)
CircleCI みたいに延命されると嬉しいなぁ・・ pic.twitter.com/UnQaIeY9ih
で、ようやく本題。
このログイン対応をしていて思ったのは、「設定したけど本当にログインした状態で pull できているのかをどう確認したらわからなくて不安」でした。
docker login してるかどうか確認するコマンドってない?
— ずみっくす@あつまれCIサービス (@srz_zumix) October 29, 2020
docker のコマンドに「それ」を確認するものがあればよかったのですが、なさそうだったので以下の方法で確認しました。
「echo a | docker login」
ログイン済みなら以下のように成功となります。
$ echo a | docker login Authenticating with existing credentials... Login Succeeded $ echo $? 0
$ echo a | docker login Error: Cannot perform an interactive login from a non TTY device $ echo $? 1
<?xml version="1.0" encoding="utf-8"?>
<autovisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<type name="iutest::Test">
<displaystring>{{ name={test_info_->m_testname}}}</displaystring>
<expand>
<item name="TestName">test_info_->m_testname</item>
<item name="TestCaseName">test_info_->m_testcase->m_test_case->m_testcase_name</item>
<item name="Results">test_info_->m_test_result</item>
</expand>
</type>
</autovisualizer>
function(iutest_add_executable name)
if (MSVC)
add_executable(${name} ${ARGN} ${IUTEST_ROOT_DIR}/tools/VisualStudio/Visualizers/iutest.natvis)
else()
add_executable(${name} ${ARGN})
endif()
endfunction()
workflows:
default-test:
jobs:
- parallel1:
i: 0
- parallel2:
i: 4
workflows:
default-test:
jobs:
- parallel1:
i: 0
- parallel2:
i: 4
虎空棘魚は「#技術書典 応援祭」に参加します。
— ずみっくす@技術書典8Day2え08 (@srz_zumix) March 3, 2020
「あつまれ CI サービス タダではじめる継続的インテグレーション生活」と題して、
過去6年間で使ってきた「無料で使える CI サービス」の中から厳選した 13 サービスを一冊にまとめました。
よろしくお願いするだなも! pic.twitter.com/hQ6qDx5Vo1
| Platform | プリプロセッサの定義 |
|---|---|
| Win32 | WIN32;_DEBUG;_LIB; |
| x64 | WIN64;WIN32;_DEBUG;_LIB; |
| Platform | プリプロセッサの定義 |
|---|---|
| Win32 | WIN32;_DEBUG;_LIB; |
| x64 | WIN32;_DEBUG;_LIB;WIN64; |

いえ、なしです。— カウプラン機関極東支部@技術書典8新刊「Pythonではじめる黒魔術入門」 (@_kauplan) January 9, 2020
Re:VIEW StarterはRe:VIEW 2.5に多くの改造を施したものなので、バージョン3や4へ変更すると動作しません。
またRe:VIEWの3や4の新機能でめぼしいものはないので、2.5のままで安心して使えます。

Excited to announce FreeBSD support on Cirrus CI! 🎉 As usual free for OSS and with per-second billing for private repositories! 🙌 https://t.co/HplxCQSPYF
— Cirrus Labs (@cirrus_labs) December 4, 2018
Cirrus CI now supports @GitHub's content attachments API. 🎉 Issue and PR comments with links to Cirrus CI tasks will have additional information about the tasks including logs! 😻 pic.twitter.com/mmByWPwvwq
— Cirrus Labs (@cirrus_labs) January 29, 2019
Exited to announce @GitHub Annotations support on Cirrus CI! 🎉 Enriched feedback right in the same tab! 🙌 https://t.co/A7mAXxGdNG pic.twitter.com/YaZGhSVAKk
— Cirrus Labs (@cirrus_labs) April 22, 2019
Cirrus CI now supports manual tasks which are very handy integrated right in the @GitHub UI! Learn more in the docs 👇 https://t.co/muRW0AFGN7 pic.twitter.com/1xEu92CaJV
— Cirrus Labs (@cirrus_labs) May 20, 2019
travis encrypt COVERITY_SCAN_TOKEN=--add env.global

docker-machine stop defaultで VM を停止します。

Starting "default"... (default) Check network to re-create if needed... (default) Windows might ask for the permission to configure a dhcp server. Sometimes, such confirmation window is minimized in the taskbar. Unable to start the VM: C:\Program Files\Oracle\VirtualBox\VBoxManage.exe startvm default --type headless failed: VBoxManage.exe: error: Implementation of the USB 3.0 controller not found! VBoxManage.exe: error: Because the USB 3.0 controller state is part of the saved VM state, the VM cannot be started. To fix this problem, either install the 'Oracle VM VirtualBox Extension Pack' or disable USB 3.0 support in the VM settings (VERR_NOT_FOUND) VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole Details: 00:00:01.074731 Power up failed (vrc=VERR_NOT_FOUND, rc=E_FAIL (0X80004005)) Looks like something went wrong in step ´Checking status on default´... Press any key to continue...
