μ΄ Docker μ΄λ―Έμ§ νκ²½μ Coduck μ±μ μμ€ν
μμ μ¬μ©νκΈ° μν λ©ν°μΈμ΄ μλλ°μ€ μ±μ κΈ°μ
λλ€.
IOIμ isolateλ₯Ό ν΅ν΄ μμ μ ν, 보μ 격리, μκ°/λ©λͺ¨λ¦¬ μ μ΄κ° κ°λ₯ν©λλ€.
| μΈμ΄ | μ»΄νμΌλ¬ / μΈν°νλ¦¬ν° | μ»΄νμΌ / μ€ν λ°©μ |
|---|---|---|
| C | gcc |
gcc Main.c -o Main./Main |
| C++ | g++ |
g++ Main.cpp -o Main./Main |
| Python3 | python3 |
python3 Main.py |
| PyPy3 | pypy3 |
pypy3 Main.py |
| Java | openjdk-8-jdk-headless |
javac Main.java java Main |
isolate --init λͺ
λ Ήμ΄λ₯Ό μ¬μ©νμ¬ μλλ°μ€λ₯Ό μ΄κΈ°νν©λλ€.
$ isolate --init
/var/local/lib/isolate/0/var/local/lib/isolate/0/box λλ ν λ¦¬κ° μμ
λλ ν λ¦¬κ° λ©λλ€.
hello.c νμΌμ μμ±ν©λλ€.
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}isolateλ₯Ό μ¬μ©νμ¬ C νλ‘κ·Έλ¨μ μ»΄νμΌνκ³ μ€νν©λλ€.
cp hello.c /var/local/lib/isolate/0/box
isolate --run --processes=4 -- /usr/bin/gcc hello.c -o hello
isolate --run -- hellohello.py νμΌμ μμ±ν©λλ€.
print("Hello, World!")isolateλ₯Ό μ¬μ©νμ¬ Python3 νλ‘κ·Έλ¨μ μ€νν©λλ€.
cp hello.py /var/local/lib/isolate/0/box
isolate --run -- /usr/bin/python3 hello.pyhello.java νμΌμ μμ±ν©λλ€.
public class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}isolateλ₯Ό μ¬μ©νμ¬ Java νλ‘κ·Έλ¨μ μ»΄νμΌνκ³ μ€νν©λλ€.
cp hello.java /var/local/lib/isolate/0/box
isolate --run --processes=32 \
-- /usr/lib/jvm/java-8-openjdk-amd64/bin/javac \
-encoding UTF-8 Main.java
isolate --run --processes=32 \
-- /usr/lib/jvm/java-8-openjdk-amd64/bin/java \
-Dfile.encoding=UTF-8 Main