Saya mencoba menerbitkan beberapa artefak ke sistem Host saya, tetapi saya tidak dapat menemukan cara melakukannya:

./docker/client/Dockerfile

FROM node:alpine
RUN mkdir -p /test
RUN echo "hi" > /test/log.txt
VOLUME /test
EXPOSE 3000

./docker-compose.yml

version: '3'
services:
  platform-app-frontend:
    image: platform-app-frontend
    build: docker/client
    volumes:
      - ./client/test:/test
    ports:
      - '3100:3100'

Dan saya menjalankan menggunakan:

docker-compose up --build platform-app-frontend && ls docker/client/test

Tapi tidak ada file di docker/client/test

EDIT Komentar menyarankan 2 metode, menggunakan ENTRYPOINT atau menggunakan docker cp.

Saya menyukai ENTRYPOINT karena berada di dalam Dockerfile, tetapi sayangnya terlalu lambat. Jadi saya akhirnya menggunakan docker cp

0
Ashley Coolman 8 Maret 2020, 21:57

1 menjawab

Jawaban Terbaik

Bind mount ./client/test:/test membayangi semua yang Anda masukkan ke dalam folder itu /test selama tahap pembuatan buruh pelabuhan.

Jadi, Anda harus melakukan sesuatu seperti membangun dalam ENTRYPOINT gambar Anda, bukan pada tahap pembuatan buruh pelabuhan.

Atau, seperti yang dikatakan @emix dalam komentar, Anda sebaiknya menggunakan perintah docker cp dan bukan volume.

0
Fmerco 8 Maret 2020, 19:59