Looking for PowerShell in Arch Linux container
With my previous blog posts about installing PowerShell on the following Linux distros:
I will be demonstrating on how you can install PowerShell 6 in Arch Linux (Arch GNU/Linux) distro container today.
Like my previous blog post, I will not be providing a break down of the steps
in the Dockerfile
with explainations except including comments in the
Dockerfile
to indicate what it is doing.
PowerShell for Arch Linux container
In this section, I will provide a Dockerfile
text document file that contains
all the commands to build a Arch Linux container and install PowerShell to the
Arch Linux distro when you use DockerCLI docker build
command.
Note:
Although at the time of this blog post, Arch Linux Wiki - Docker Images states that we should be using
docker pull archlinux/base
for Arch Linux container image. I have chosen to usedocker pull base/archlinux
from the base/archlinux in Docker Hub because it is more up to date and maintained by a community in GitHub - ArchImg/ArchLinux.
↑Top
Creating the Dockerfile
Let us create a new Dockerfile
text document file to begin with.
Next, copy the code below and paste it into that Dockerfile
text document
file.
Remember to save the Dockerfile
file and exit from your editor.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# Pull Arch Linux container image
FROM base/archlinux:latest AS build
# Define Args and Env needed to create links
ENV PS_INSTALL_FOLDER=/opt/microsoft/powershell/6 \
# Define ENVs for Localization/Globalization
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false \
LC_ALL=en_US.UTF-8 \
LANG=en_US.UTF-8
# Download the PowerShell binary package
ADD https://github.com/PowerShell/PowerShell/releases/download/v6.1.0/powershell-6.1.0-linux-x64.tar.gz \
/tmp/powershell-linux.tar.gz
# Installation and configuration
RUN \
# Enable en_US.UTF-8 locale
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \
# Generate locale
&& locale-gen \
# Update package database
&& pacman -Syy \
# Install dependencies
&& pacman -S --noconfirm \
# Required package for International Components for Unicode
core/icu \
# Required package for SSL
openssl-1.0 \
# Create powershell folder
&& mkdir -p ${PS_INSTALL_FOLDER} \
# Uncompress powershell linux tar file
&& tar zxf /tmp/powershell-linux.tar.gz -C ${PS_INSTALL_FOLDER} \
# Remove powershell linux tar file
&& rm -f /tmp/powershell-linux.tar.gz \
# Create the pwsh symbolic link that points to powershell
&& ln -s ${PS_INSTALL_FOLDER}/pwsh /usr/bin/pwsh \
# Upgrade distro
&& pacman -Syyu --noconfirm \
# Clean downloaded packages
&& yes | pacman -Scc
# Configure entrypoint for the container
ENTRYPOINT ["pwsh", "-c"]
# Configure PowerShell as default shell for the container
CMD ["pwsh"]
↑Top
Building from the Dockerfile
Now, you will have to use the DockerCLI docker build
command to build the
Arch Linux container from the instructions in the Dockerfile
text document
file.
1
2
3
4
5
# Change to your working directory
cd \The\directory\where\your\Dockerfile\is\saved
# Build the container with the Dockerfile
docker build -t archlinux .
↑Top
Conclusion
Once the container build has completed, you can use the DockerCLI docker run
command to run the container and look at PowerShell instead of Bash.
1
docker run --rm --interactive archlinux
And if you need to go back into Bash from the pwsh
in the container,
type bin/bash
to switch into Bash.
But if you requires to run the container in bash
, you can do it on the same
container with the command below.
1
docker run --rm --interactive --tty archlinux bin/bash
And if you need to go back into PowerShell from the bash
in the container,
type pwsh
to switch into PowerShell.
There you go on how to install PowerShell for Arch Linux folks and that is the
end of my fun with pacman
.
If you find that this information useful, feel free to bookmark this or share it with your colleagues and friends.
↑Top
References
- Docker Docs - Dockerfile reference
- Microsoft Docs - Installing PowerShell Core on Linux
- Arch Linux Wiki - What is Arch Linux?
↑Top
Related Books
↑Top