Remove Elixir template main.ex to avoid module conflict#70
Merged
Conversation
- Add RUN command in Dockerfile.lite to remove /judge/main/lib/main.ex - Add RUN command in Dockerfile (full) to remove /judge/main/lib/main.ex - Prevents module conflict between template and user's Main.ex - Resolves issue #69
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
目的
コンテナイメージビルド時に
/judge/main/lib/main.exを削除し、ユーザーのMain.exとのモジュール競合を根本的に解決します。Resolves #69
問題
現在のコンテナイメージには
/judge/main/lib/main.exというテンプレートファイルが含まれており、ユーザーのMain.exと同じMainモジュールを定義するため競合が発生していました。現状の回避策
atcoder-env側で以下の回避策を実装済みです(PR #111):
.postCreateContainer.shでmain.exを削除Main.exの行番号を正確に表示解決策
変更内容
両バージョンのDockerfileに
main.ex削除コマンドを追加:Dockerfile.lite(267行目):
```dockerfile
Remove Elixir template main.ex to avoid module conflict with user's Main.ex
RUN rm -f /judge/main/lib/main.ex
```
Dockerfile(364行目):
```dockerfile
Remove Elixir template main.ex to avoid module conflict with user's Main.ex
RUN rm -f /judge/main/lib/main.ex
```
配置場所
Elixirプロジェクトがbuilderからコピーされた直後に削除:
COPY --from=builder /opt/elixir-project /judge/の直後COPY --from=builder /opt/elixir-project /judge/の直後メリット
影響範囲
.postCreateContainer.shでの削除)が引き続き動作.postCreateContainer.shで既に削除済み関連情報