Saya melihat 8 panggilan ke aliran keluaran, apakah wadah buruh pelabuhan membuat beberapa contoh file jar?

public static void main(String[] args) throws Exception {
    System.out.println("main");
}

Keluaran

main
main
main
main
main
main
main

File komposisi buruh pelabuhan

department:
    image: openjdk:jdk-alpine
    container_name: "department"
    restart: always
    ports:
      - 9082:8080
      - 65195:65193
    volumes:
      - ./Dept/target/Dept-jar-with-dependencies.jar:/deployments/Dept-jar-with-dependencies.jar
    environment:
      - JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,address=0.0.0.0:65193,suspend=n,server=y -Djava.net.preferIPv4Stack=true
    command: java -jar /deployments/Dept-jar-with-dependencies.jar
0
AppDeveloper 9 Agustus 2019, 21:45

1 menjawab

Jawaban Terbaik

Saat Anda menentukan restart: always, setiap kali container keluar, container akan segera dimulai ulang. Juga, karena proses wadah utama adalah apa yang Anda masukkan ke dalam toples ini, setiap kali main() selesai, wadah akan dimulai ulang.

Jika Anda secara aktif mengembangkan ini, saya sarankan pertama-tama mencoba membuat aplikasi berfungsi dalam konteks non-Docker, lalu mengemasnya. Kebijakan mulai ulang yang lebih umum adalah restart: on-failure, yang tidak akan memulai ulang penampung jika keluar secara normal (dengan kode status 0). Pertimbangkan juga untuk mengemas rangkaian opsi ini ke dalam Dockerfile sehingga dapat dijalankan tanpa memerlukan file jar secara terpisah.

0
David Maze 9 Agustus 2019, 19:02