安装
sudo apt-get install docker-compose
使用编译
docker-compose.yaml
version: "3.3"
services:
myweb001:
build:
context: .
args:
whoami: "m"
image: apache-web-001:latest
ports:
- "8081:80"
dockerfile
FROM alpine:3.17
ARG whoami
ENV db_user=none
WORKDIR /var/www/localhost/htdocs
RUN apk --update add apache2
RUN rm -rf /var/cache/apk/*
RUN echo "<h3>I'm ${whoami}, and I'm building my first Docker Image 1<h3>" >>index.html
RUN echo "<h3>I'm ${whoami}, and I'm building my first Docker Image 2<h3>" >>index.html
RUN echo "<h3>I'm ${whoami}, and I'm building my first Docker Image 3<h3>" >>index.html
COPY ./content.txt ./
RUN cat ./content.txt >> index.html
ENTRYPOINT ["httpd","-D","FOREGROUND"]
html文件, content.txt
<div>
<h3>My Book List</h3>
<ul>
<li><a href="#">Die Hard</a></li>
<li><a href="#">Secret</a></li>
<li><a href="#">Html 101</a></li>
<li><a href="#">Kubernetes 202</a></li>
<li><a href="#">AWS 303</a></li>
</ul>
</div>
先说现象
运行
docker-compose build --no-cache
我编译的时候失败了 ,
$ docker-compose build --no-cache
Traceback (most recent call last):
File "/usr/bin/docker-compose", line 11, in <module>
load_entry_point('docker-compose==1.25.0', 'console_scripts', 'docker-compose')()
File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 72, in main
command()
File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 125, in perform_command
project = project_from_options('.', options)
File "/usr/lib/python3/dist-packages/compose/cli/command.py", line 53, in project_from_options
return get_project(
File "/usr/lib/python3/dist-packages/compose/cli/command.py", line 145, in get_project
client = get_client(
File "/usr/lib/python3/dist-packages/compose/cli/command.py", line 116, in get_client
client = docker_client(
File "/usr/lib/python3/dist-packages/compose/cli/docker_client.py", line 97, in docker_client
kwargs = kwargs_from_env(environment=environment, ssl_version=tls_version)
TypeError: kwargs_from_env() got an unexpected keyword argument 'ssl_version'
但是偶然间运行docker compose up -
d的时候成功了,很奇怪
后来新版本发现不能加横杆,查阅资料才知道
在 Docker Compose 中,
docker-compose build
和docker compose build
是等效的,它们执行相同的操作:构建 Docker Compose 文件中定义的服务。这两者的不同只是命令的书写方式。
在 Docker Compose 的早期版本中,命令是
docker-compose
,但自从 Docker Compose 1.27.0 版本开始,可以使用简化的docker compose
命令。这是 Docker Compose 官方为了简化使用而引入的一项变更。
无论使用哪个命令,它们都会根据
docker-compose.yml
文件中的定义构建 Docker 服务。这两个命令的行为是相同的,只是命令名称的不同。