[英]How to use docker-compose from another person?
我對 Docker 的世界還很陌生,所以我有以下場景:
和前端向他們請求數據。
Spring Boot app中的Dockerfile為:
EXPOSE 8080
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
而docker-compose.yaml的內容是:
version: '3'
services:
app:
image: <user>/<repo>
build: .
ports:
- "8080:8080"
container_name: app_test
depends_on:
- db
environment:
- SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/test
- SPRING_DATASOURCE_USERNAME=test
- SPRING_DATASOURCE_PASSWORD=test
db:
image: 'postgres:13.1-alpine'
restart: always
expose:
- 5432
ports:
- "5433:5432"
container_name: db_test
environment:
- POSTGRES_DB=test
- POSTGRES_USER=test
- POSTGRES_PASSWORD=test
volumes:
- db:/var/lib/postgresql/data
- ./create-tables.sql:/docker-entrypoint-initdb.d/create-tables.sql
- ./fill_tables.sql:/docker-entrypoint-initdb.d/fill_tables.sql
volumes:
db:
driver: local
據我所知,為了運行整個程序,只需鍵入docker-compose就可以了,瞧,它可以工作。 它從 docker-hub 存儲庫中提取應用程序的圖像,對數據庫的圖像也是如此。
事情來了。 我正在和另一個人(前端)一起工作,他的目標是向這個 API 發出請求。所以他只復制粘貼這個 docker-compose.yaml 文件並寫上 docker-compose 就足夠了嗎?或者還有另一件事要做?
docker-compose在團隊合作中應該如何使用?
在此先感謝,如果我必須更清楚地發表評論!
您的同事將需要:
docker-compose.yml
文件本身volumes:
綁定掛載build:
(or build: { context: }
) 行中命名的任何目錄,如果圖像沒有被推送到注冊表如果他們有docker-compose.yml
文件,他們可以docker-compose pull
那里命名的圖像,Docker 不會嘗試重建它們。
命名卷很難在系統之間傳輸; 請參閱有關保存和恢復卷的 Docker 文檔。 綁定掛載的主機目錄更容易傳輸,但在非 Linux 主機上要慢得多。 避免對部分應用程序代碼使用卷,包括 Node 庫目錄或 static 資產。
特別是對於此設置,我可能考慮進行的一項更改是使用postgres
圖像的環境變量來創建數據庫,然后使用應用程序的數據庫遷移系統來創建表和種子數據。 這將避免需要兩個.sql
文件。 除此之外,他們唯一需要的是docker-compose.yml
文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.