or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
コンテナが作れない
問題文
あなたはICTSC専門学校の学生です。
新入生向けに学内向けCTFを開催するにあたって、アプリ開発チームとサーバ構築チームに分かれてCTFサーバの構築を行うことになりました。サーバ構築チームはあなたの後輩のA君が担当、あなたは両方を担当しています。
当初はサークルで余っていたラックサーバ上のVMで展開する予定でしたがA君が突然「VMじゃなくてDockerでやりたいです」と言い出しました。
A君は最近Dockerを触り始めたばかりなのですが、サーバの構成自体は簡単なので大丈夫だろうと判断し任せることになりました。
アプリ開発が終わり、A君に展開に必要なファイルを渡してDocker上で展開してもらったところコンパイルがうまくいかないと言われました。
これ以上時間をかけてしまうと後のスケジュールに影響してしまうため、A君に代わりあなたがトラブルシューティングを行うことにします。
原因を特定し、スコアボードが正常に表示されるようにDockerfileを修正してください。
条件
スコアボードのソースコード及び docker-compose.yaml を変更してはいけない
MySQL及びRedisの構成ファイルを変更してはいけない
必ずアプリケーションのコンパイル・実行はコンテナ上で行い、原則ホストOSでパッケージをインストールしてはいけない
コンテナで使用しているイメージは変更してはいけない
WebAppの構成ファイルのみを修正し、他の構成ファイルは変更してはいけない
ゴール
http://192.168.0.1:8080/index にアクセスしたときスコアボードが正常に表示される
情報
IPアドレス: 192.168.0.1
ユーザー名: admin
パスワード: 248b1fa8f258
Dockerfile
解答
お世話になります。:thonk_spin.ex-large.rotate.parrot:です。
問題「コンテナが作れない」の解答を送らせていただきます。
修正後のDockerfile
原因とその解決
goアプリのビルドの際に必要な依存パッケージがダウンロードできていなかった
go get
コマンドで必要な依存パッケージをダウンロードした(5~8行目)go get
コマンドを実行するためにRUN apk add --update --no-cache git
でgit
をインストールした(2行目)ビルドステージの名前が設定されていなかった
AS
句でbuilder
という名前を指定した(1行目)/usr/local/bin/exec-webapp.sh
に実行権限が付与されていなかったchmod
コマンドを実行して付与した(14行目)実行イメージ内にアプリの実行に必要なファイル(
webapp
バイナリ,views
ディレクトリ,themes
ディレクトリ)が配置されていなかったCOPY
命令で必要ファイルをビルドステージからコピーした(15~17行目)