Zaten orada görüntü başladığında bir keyspace ve şema ile Cassandra görüntüyü oluşturur bir dockerfile oluşturmak istiyoruz. GeneldeBir şema içeren cassandra (veya herhangi bir veritabanı) için Dockerfile nasıl oluşturulur?
, nasıl, en azından ilk defa çalıştıran gerçekten kabın kadar yapılamaz bazı adım (lar) içeren bir görüntü inşa edecek bir Dockerfile oluşturabilirim?
Şu anda iki adımım var: Cassandra görüntüsünü CQL şema dosyaları ile bir geçici bir dizine eşleyen bir cassandra Dockerfile yapısını oluşturun ve sonra görüntüyü aldıktan sonra şemayı içe aktarmak için cqlsh ile docker exec komutunu çalıştırın. bir konteyner olarak başlatıldı. Sadece bir kap -
Ama bu şema ile bir görüntü oluşturmaz. Bu konteyner bir görüntü olarak kaydedilebilir, ancak bu hantaldır.
docker run --name $CASSANDRA_NAME -d \
-h $CASSANDRA_NAME \
-v $CASSANDRA_DATA_DIR:/data \
-v $CASSANDRA_DIR/target:/tmp/schema \
tobert/cassandra:2.1.7
sonra
docker exec $CASSANDRA_NAME cqlsh -f /tmp/schema/create_keyspace.cql
docker exec $CASSANDRA_NAME cqlsh -f /tmp/schema/schema01.cql
# etc
Bu çalışır, ancak bağlantılı konteyner/hizmetler de başlatıp şema yerinde olmasını bekliyoruz çünkü Docker oluşturmak gibi imkansız araçlarla kullanmak mümkün kılar.
Kasırga işleminin, yapım sırasında Dockerfile'da arka planda başlatılmaya çalışıldığı sırada, daha sonra cqlsh çalıştırılmaya çalışıldığı, ancak bunun çok iyi çalıştığını düşünmediğim bir girişim gördüm.
sonra, ne yapmak 2 'liman işçisi exec'and sonra' docker commit' 'docker run' yapıyor sorun nedir ve istediğiniz imaja sahip? Tek adımlı bir süreç değil mi? – user2915097
@ user2915097 Docker yazımını bir uygulama ve bir veritabanı dizisi oluşturmak için kullanmak isterim. Docker oluşturmak sadece görüntüleri oluşturur ve başlatır. Uygulama, veritabanının bir şemaya sahip olmasını beklediği gibi hatalar atıyordu. Sanırım tamamlamadan sonra hata yapmasına ve docker exec komutunu çalıştırmasına izin verebilirim, ama bu çok temiz değil. –
Dockerfile'ınızda 'cqlsh -f/tmp/schema/create_keyspace.cql' ve diğer komutunuzda ne yapmalısınız? – user2915097